私の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
..それは悪い決定のように見え、コードが醜くなるからです。
あなたの提案は?ありがとう!