已多次发布,但我仍然没有运气:
$rootScope.$on("$stateChangeError", function(event, toState, toParams, fromState, fromParams, error) {
if (error && !error.authenticated) {
$location.path('/login');
console.log('new path: ' + $location.path());
}
});
我的应用实际上不会转到/login
,但console.log将返回值/login
。我已经尝试了$apply
技巧而没有在其他线程中提到的运气,但这是一个非常简单的应用程序,没有第三方集成,其中angular需要通过$apply
获得一些额外帮助。在$location.path()
的上下文中使用$rootScope
,或者在监听$stateChangeError
时,是否需要{{1}}的变体?
我确信这很简单,我只是没有看到它。
答案 0 :(得分:1)
我没有提到我正在使用ui.router,所以切换到$state.go('login')
似乎可以使它工作。下次我会确保发布一个plunker来获得可重现的东西,也许可以解决我自己的问题:)