现在我想在angularjs中加载ui-view之前检查用户的权限。
我的route.js
是这样的:
$stateProvider.state('app.test', {
url: '/test',
component: 'test',
resolve: {
delay: function ($q, $http, $window, $state, $timeout) {
var delay = $q.defer();
var token = $window.localStorage.getItem('token');
$http({
url: "url get profile here",
method: "GET",
headers: {
'Authorization': token
}
})
.success( function(response) {
})
.error( function(response) {
$state.go('logout');
});
delay.resolve();
return delay.promise;
}
}
})
在模板html中:
<ui-view name="header"></ui-view>
<ui-view name="sidebar"></ui-view>
问题是:当我编辑本地存储时变得不正确$state.go('logout');
正在运行。但是在ui-view
模板中已经将函数调用到名为header
和sidebar
的控制器中。如何在检查权限完成之前阻止来自ui-view
的访问控制器?
答案 0 :(得分:0)
这是错误,因为我不完全按delay.resolve();
。我的代码将成为:
.success( function(response) {
delay.resolve();
})
.error( function(response) {
delay.reject();
$state.go('logout');
});
它正在工作!!!