後になくなってangularjsカスタムプロパティに私がメインコントローラに$rootScope.myproperty
を宣言し、それが他のコントローラにアクセスすることができます。
しかしコントローラの1つでは、$rootScope
を私が$watch
を使用して注入する必要があります。その後、私は$rootScope.myproperty
を確認すると、未定義になった。奇妙なことが起こるのはなぜですか?
後になくなってangularjsカスタムプロパティに私がメインコントローラに$rootScope.myproperty
を宣言し、それが他のコントローラにアクセスすることができます。
しかしコントローラの1つでは、$rootScope
を私が$watch
を使用して注入する必要があります。その後、私は$rootScope.myproperty
を確認すると、未定義になった。奇妙なことが起こるのはなぜですか?
あなたが
$rootScope = { myproperty: 'root abc' };
を変数として$rootScope
を使用して、それにオブジェクトを割り当てるたので、これは間違っている起こっていました。代わりに、あなたは以下のようにそれに属性を追加する必要があり、それが動作します:
$rootScope.myproperty = 'root abc';
私はcodepenとその作業更新しました:問題はあなたがAttendeesCtrl
コントローラに$rootScope
を注入してきているhttp://codepen.io/anon/pen/RaeyJm
を。コントローラーに$rootScope
を注入する必要はありません。 $scope
を注入すると、prototypal inheritance of JavaScriptのために$rootScope
で定義されたものに自動的にアクセスできます。だから、AttendeesCtrl
コントローラは次のようになります。詳細については
.controller('AttendeesCtrl', function($scope) {
//I used $watch and $rootScope somehere so I have to inject $rootScope in this controller
$scope.myproperty = $rootScope.myproperty;
});
を、あなたはAngularJS Scope Hierarchiesを見てすることができます。
あなたの問題を解決することを願っています。
回答を追加しました。確認してください。 –