【发布时间】:2014-02-08 07:57:00
【问题描述】:
我想检查每次我转换到的状态或它的父级是否有一些 isLogged 数据属性时记录用户。我的代码是:
service.watchHasAccess = function(){
$rootScope.$on('$stateChangeStart', function(event,toState,toStateParams){
if(typeof toState.data !=='undefined' && typeof toState.data.loggedIn !== 'undefined' && toState.data.loggedIn == true){
api.getWithPromise('user/isLoggedIn').then(function(response){
if(response.status !=='OK'){
event.preventDefault();
FlashMessage.showError('Zaloguj się aby przejść tutaj.');
$state.go('MainPage');
}
});
}
});
问题是当转换到受限状态时它会加载,但它几乎立即重定向到 MainPage 状态。这就像闪光灯。这是因为我使用异步请求,所以我假设状态只是转换,无论请求的结果是什么,但随后响应来了,我被正确地转换了。我想要实现的是等到承诺得到解决然后检查并最终将用户重定向到'MainPage'。这可能吗?
【问题讨论】:
标签: javascript angularjs angular-ui-router