ui-router:在其中一个解析中激活状态时阻止解析

时间:2014-08-29 19:17:48

标签: angularjs angular-ui-router

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

0 个答案:

没有答案