我想根据我的角度应用中的用户类型进行路由。
因此,如果用户是管理员,则应该在登录后根据用户类型的数据来重定向到admin.html,如果用户然后是user.html。
在此,我想添加条件:
.when('/dashboard', {
title: 'dashboard',
templateUrl: 'partials/User.html',
controller: 'authCtrl'
})
答案 0 :(得分:0)
我是使用ui-router而不是ng-router完成的,但你仍然可以在这里查看我的答案:
Check if user has permission to access specific states
基本上我构建一个服务并验证用户是否有权访问该状态,将用户重定向到另一个状态。
每次状态更改时都会在run函数中调用该服务。
答案 1 :(得分:0)
在你的登录控制器中注入$ routeParams依赖项,然后像这样影响$ routeParams变量user(simple user或admin)的值
$routeParams.user = data.user;
现在就像这样配置您的路线
.when('/:user', {
title: 'dashboard',
templateUrl:'partials/:user.html'
controller: 'authCtrl'
});
因此,如果它是简单的用户,您将被重定向到partials / user.html,如果是管理员,您将被重定向到partials / admin.html。
答案 2 :(得分:0)
您可以使用.run函数并在那里检查用户并使用$ location重定向到条件页面。
.when('/user', {
title: 'dashboard',
templateUrl: 'partials/User.html',
controller: 'authCtrl'
}).when('/admin', {
title: 'dashboard',
templateUrl: 'partials/Admin.html',
controller: 'authCtrl'
})
来自运行功能
.run(function($location){
console.log("run")
var user = "user";
if(user === "Admin"){
$location.path("/admin")
}else{
$location.path("/user")
}
})
来自控制器
.controller('authCtrl',function($location){
console.log("controller")
var user = "admin";
if(user === "admin"){
$location.path("/admin")
}else{
$location.path("/user")
}
})