2016-04-29 15 views
1

Problem Related codepen

後になくなってangularjsカスタムプロパティに私がメインコントローラに$rootScope.mypropertyを宣言し、それが他のコントローラにアクセスすることができます。

しかしコントローラの1つでは、$rootScopeを私が$watchを使用して注入する必要があります。その後、私は$rootScope.mypropertyを確認すると、未定義になった。奇妙なことが起こるのはなぜですか?

+0

回答を追加しました。確認してください。 –

答えて

0

あなたが

$rootScope = { myproperty: 'root abc' }; 

を変数として$rootScopeを使用して、それにオブジェクトを割り当てるたので、これは間違っている起こっていました。代わりに、あなたは以下のようにそれに属性を追加する必要があり、それが動作します:

$rootScope.myproperty = 'root abc'; 

私はcodepenとその作業更新しました:問題はあなたがAttendeesCtrlコントローラに$rootScopeを注入してきているhttp://codepen.io/anon/pen/RaeyJm

0

Working Demo

を。コントローラーに$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を見てすることができます。

あなたの問題を解決することを願っています。