我定义了一个工厂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() }]}
})
这个实现的缺陷是我必须写很多resolve
. 因此,我想知道是否有办法在控制器而不是state中实现此规则。有人可以帮忙吗?