在home
状态下,我有一个函数可以检查当前用户是否与其他承诺一起被授权。
resolve: {
authorize: ['AuthService', function (AuthService) {
console.log("authorize from home");
return AuthService.authorize();
}],
competitions: ['Competition', function (Competition) {
return Competition.query();
}]
}
如果没有用户登录,则AuthService.authorize
会激活login
状态。
var authorize = function () {
console.log("Authorize ");
if (!isLoggedIn()) {
$q.when(angular.noop).then(function () {
console.log("Not logged in, go to login state");
$state.go('login');
});
}
};
它按预期工作,登录状态被激活,但competitions
承诺已解决(如果没有用户登录,我可以看到REST调用返回401,这是正确的)。由于authorize
resolve激活另一个状态,有没有办法阻止执行以下解决方案?
我的实施基于这个问题:angular ui-router login authentication