$transitions 中 $routeChangeStart 中 next 的等价物是什么
What is Equivalent of next in $routeChangeStart in $transitions
我正在 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;
}
如您所见,我想将 'next' 信息传递给服务。 $transitions.$to() 是否产生与 $routeChangeStart('next') 中的 next 相同的结果?
我是新来的。 TIA
是的,使用Transition.to()
获取将被激活的状态。
有关详细信息,请参阅 docs for the Transition class。
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;
}
我强烈推荐阅读 Transition Hooks Guide
我正在 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;
}
如您所见,我想将 'next' 信息传递给服务。 $transitions.$to() 是否产生与 $routeChangeStart('next') 中的 next 相同的结果? 我是新来的。 TIA
是的,使用Transition.to()
获取将被激活的状态。
有关详细信息,请参阅 docs for the Transition class。
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;
}
我强烈推荐阅读 Transition Hooks Guide