2016-12-23 2 views
2

Я создаю приложение на угловом, в котором мне нужно, чтобы каждый пользователь имел свою отдельную страницу.Добавление идентификатора в URL-адресах в угловых js

localhost/{username} 

ниже мои пары маршрутизации,

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 Somthing так:

.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

вы можете добавить маршрут Params в конфигурационном файле, как показано ниже

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

Если предположить, что этот контроллер 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, 
} 
}); 

Handling объект пользователя в 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 

}); 
Смежные вопросы