我已按如下方式定义了工厂<div style="padding-top: 100px;">
:
auth
对于许多页面,我希望在显示之前始终运行app.factory('auth', [function () {
var auth = {};
auth.getUser = function () {
... ...
// get user from cookie, cache, history, etc.
}
return auth
}]);
。为此,目前我使用auth.getUser()
,例如:
resolve
这个实现的缺陷是我必须写很多.state('home', {
url: '/home',
templateUrl: '/htmls/home.html',
controller: 'MainCtrl',
resolve: { getUser: ['auth', function (auth) { return auth.getUser() }]}
})
。因此,我想知道是否有办法在控制器而不是状态中实施此规则。有人可以帮忙吗?
答案 0 :(得分:0)
尝试检查
中的条件$rootScope.$on('$stateChangeStart', function (event, toState) {
//condition here and $state.go('')
});
我不确定这是否有效。
答案 1 :(得分:0)