1

次のようにグローバル $rootScope 変数を定義しています。

var app = angular.module("demoApp", []);
app.run(function ($rootScope) {
    $rootScope.test = "Global"; 
});

私のhtmlでこれに{{test}}としてアクセスすると動作します。

しかし、コントローラー内でこの変数の値を変更し、 $location.path(....); を使用して場所を変更すると、コントローラーで このグローバル変数の値は変わりません。

function myCtrl($location, $rootScope) {
    $rootScope.test = "Changed to Local"; 
    $location.path("New.html");
}

New.html でこの変数 {{test}} にアクセスすると、「Changed to Local」ではなく「Global」と出力されます。しかし、ページを更新すると、問題なく動作します。

この更新の問題を回避する方法を教えてください。「app.run.....」内で解決/約束を使用できますか? もしそうなら、それを行う方法。

4

2 に答える 2