在我的Angular.js应用程序中,我遇到了这样的问题。我有一个被调用的服务,user
我调用它app.run
来从服务器获取用户数据,如下所示:
app.run(function (user, tracking) {
user.initialize();
... // some other code goes here..
});
这只是调用 API 路由并创建$rootScope.user
可通过所有应用程序使用。
但不知何故,控制器有时加载得更快,然后初始化就开始了……而且$rootScope
它里面不包含user
对象。
function SomeController($scope, $rootScope, $routeParams) {
console.log($rootScope.user.name);
// sometimes returns error -
// TypeError: Cannot read property 'name' of undefined
}
那么我怎样才能强制所有控制器加载只有在初始化$rootScope
顺利之后。我不想$watch
在每个控制器中添加用户......因为它看起来像一个错误的决定并且使代码变得丑陋。
你的建议?谢谢!