我正在用angularjs构建一个基于权限的访问控制应用程序。我想要$transitions中的参数,它相当于$routeChangeStart中的“next”参数。
function ($rootScope, $state, $transitions, LoginService) {
console.log('------------------in app.js run');
$state.go('login');
$transitions.onStart({}, function ($transitions) {
var newToState = $transitions.$to();
if(checkPermissionForView(// param similar to next))
});
}我定义了一个服务,用于检查登录用户是否拥有访问视图的权限。
checkPermissionForView : function (view) {
if (!view.requiresAuthentication) {
return true;
}
return userHasPermissionForView(view);
}
userHasPermissionForView : function(view){
if(!isLoggedIn()){
return false;
}
}
isLoggedIn : function () {
var user = JSON.parse(localStorage.getItem("user"));
console.log(user);
return user != null;
}正如您所看到的,我希望传递“下一步”信息来服务。$transitions.$to()是否产生与$routeChangeStart(' next ')中的next相同的结果?我对这件事不熟悉。提亚
发布于 2017-09-29 01:14:03
是的,使用Transition.to()获取将被激活的状态。
有关更多细节,请参见转换类的文档。
function ($rootScope, $state, $transitions, LoginService) {
console.log('------------------in app.js run');
$state.go('login');
$transitions.onStart({}, function (transition) {
var newToState = transition.to();
if(!checkPermissionForView(newToState)) {
return $state.target('login');
}
});
}..。
checkPermissionForView : function (state) {
if (!state.requiresAuthentication) {
return true;
}
return userHasPermissionForState(state);
}
userHasPermissionForState : function(view){
if(!isLoggedIn()){
return false;
}
}
isLoggedIn : function () {
var user = JSON.parse(localStorage.getItem("user"));
console.log(user);
return user != null;
}我强烈建议阅读过渡钩指南
https://stackoverflow.com/questions/46460143
复制相似问题