2016-12-23 3 views
2

Ich erstelle eine App auf eckig, in der ich brauche, dass jeder Benutzer seine eigene Seite hat.ID in URLs in eckigen js hinzufügen

localhost/{username} 

unten sind meine Routing-param,

app.config(function($routeProvider) { 
$routeProvider 

    .when('/', { 
    templateUrl : '../../views/index_old.html', 


    }) 

    .when('/email/signup', { 
    templateUrl : '../../views/emailsignup.html', 
    controller : 'myCont' 

    }) 

    .when('/email/code/', { 
    templateUrl : '../../views/emailcode.html', 
    controller : 'codeCheck' 

    }) 

    .when('/user/basic/', { 
    templateUrl : '../../views/basicInfo.html', 
    controller : 'userbasicInfo' 

    }) 

    .when('/user/location/', { 
    templateUrl : '../../views/userLocation.html', 
    controller : 'userLocation' 

    }) 

});  

ich nicht in der Lage bin Benutzernamen in den URLs zu übergeben. Gibt es eine Möglichkeit, das zu tun?

+0

meinen Sie, dass Sie den Benutzernamen als Parameter übergeben möchten? –

+0

ja, ich brauche sowas wie about.me site provided. about.me/ashishverma ~ wo ashishverma ~ ein Benutzername ist –

Antwort

1

können Sie Routen so etwas wie erstellen:

app.config(function($routeProvider) { 
    $routeProvider 

    .when('/:username', { 
    templateUrl : '../../views/index_old.html' 

    }).when('/userprofile/:profileID', { 
    templateUrl : '../../views/index_old.html' 

    }) 
}) 
0

Sie sollten $routeProvider somthing wie folgt verwenden:

.when('aboutMe/:userId', {   
     templateUrl: "app/aboutMe/aboutMe.html", 
     controller: "exerciseEditCtrl", 
     resolve: 
      selectedUser:['UserResourceFactory','$routeParams',function(exerciseResourceFactory, $stateParams){ 
       return UserResourceFactory.get({id: $routeParams.userId}); 
      }] 
     } 
    }); 

Diese Route userId als Parameter in der URL enthalten. So habe ich resolve verwendet, um Informationen des Benutzers zu erhalten, der Service genannt UserResourceFactory verwendet, der sicherstellen wird, Benutzerinformationen zu erhalten, bevor er den Controller einleitete. In dem Controller finden Sie eine selcetedUser als Parametar wie diese:

app.controller('AboutMeCtrl, ['$scope', 'selectedUser',function($scope, selectctedUser){//your controller to user selectedUserData } ]); 

Wenn etwas nicht klar, lass es mich wissen. Prost.

0

können Sie Route params in der Konfigurationsdatei wie unten

app.config(function($routeProvider) { 
$routeProvider 

    .when('/', { 
    templateUrl : '../../views/index_old.html', 
    }) 
.when('/email/signup', { 
    templateUrl : '../../views/emailsignup.html', 
    controller : 'myCont' 
}) 
.when('/email/code/', { 
    templateUrl : '../../views/emailcode.html', 
    controller : 'codeCheck' 
}) 
.when('/user/basic/userId', { 
    templateUrl : '../../views/basicInfo.html', 
    controller : 'userbasicInfo' 
    params:{ 
     userId:null 
    } 
    }) 
    .when('/user/location/', { 
    templateUrl : '../../views/userLocation.html', 
    controller : 'userLocation' 
    }) 
}); 

Unter der Annahme hinzufügen, dass dieser Controller Codecheck zur Login-Seite

angular.module('').controller('codeCheck',function($scope,$location,appVariables){ 
     //your code for the controller 

     $scope.userId= appVariables.user; 

     login=function(){ 
     $location.path('/user/basic/'+ userId); 
     } 

}); 

angular.module('yourModule').factory('appVariables',function(){ 
    //Your application variables 
    var userId=0; 
    return{ 
    userId:userId, 
} 
}); 

Umgang mit dem Benutzerobjekt in dem userbasicInfo entspricht Steuerung

angular.module('').controller('userbasicInfo',function($scope,$http,appVariables){ 
     //your code for the controller 

     //API call using $http to get the corresponding user details with the help of the user Id 

});