0
定数の値をルートコントローラから変更しようとしています。 それから、状態はログインコントローラに送られ、ここで定数の値はまだ古い値です。定数値を変更し、角度1.4.9のサブコントローラにブロードキャストします。
当初定数は、次のように設定されている:
var myApp = angular.module("app");
myApp.constant("clientsList", [{"object1":....}]);
私はルートコントローラで
$rootScope.$emit('updateClients', null);
$state.go('login', {}, {reload: true});
が含まれているログアウト機能があります後、
> $rootScope.$on('updateClients', function(event, clients) {
> _this.clientsList = clients;
> angular.module("app").constant("clientsList", clients);
> });
、ログインコントローラでのstate.go( 'login')によってリダイレクトされています:
.controller('LoginController', LoginController);
function LoginController(clientsList) {
// clientsList still have the old value here:
}
clientsList定数の値を変更するにはどうすればよいですか?
「定数の変更」こと:私たちは、クライアントと店をフェッチするために同じ工場を使用し、このダミーの例を作成し、その後、我々は二つの異なるコントローラにclientsListを取得
あなたはそれをしてはいけないと言ってもいいでしょう:p – Canastro
私はこれについて考えています。しかし、ログインしたユーザーに関連するデータを含むプロバイダです。私はそうでなければサービスを使用することができます... –
あなたは、グローバルにアクセスしたいデータを格納するために、常にプロバイダ(サービスまたは工場)を使用します。 – Canastro