2016-12-23 51 views
2

我正在創建一個角度的應用程序,我需要每個用戶都有其單獨的頁面。在角js的網址中添加id

localhost/{username} 
下面

是我的路由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' 

    }) 

});  

我不能夠通過用戶名中的URL。 有沒有辦法做到這一點。

+0

你的意思是你想通過用戶名作爲參數? –

+0

是的,我需要像about.me網站提供的東西。 about.me/ashishverma〜ashishverma〜是一個用戶名 –

回答

1

您可以創建路線是這樣的:

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

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

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

    }) 
}) 
0

您應該使用$routeProvider財產以後這樣的:

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

這條路線將包含userId作爲URL參數。所以我用resolve來獲取用戶使用服務的信息,這個服務叫做UserResourceFactory,這將確保在啓動控制器之前獲得用戶信息。在你的控制器,你將有一個selcetedUser作爲這樣的parametar:

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

如果有什麼不明確的,請讓我知道。乾杯。

0

你可以按照以下

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' 
    }) 
}); 

在配置文件中添加的路由PARAMS假設這個控制器codeCheck對應到登錄頁面

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, 
} 
}); 

處理用戶對象在userbasicInfo控制器

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 

});