2013-03-09 6 views
12

を更新していません。入力ボックスを変更するたびに、値は$rootScopeに保持されません。入力ボックスを$rootScopeにバインドすることはできませんか?私はここで何が欠けているのですか?
私は基本的に与えられた$rootScopeで計算を実行する別のコントローラを持っていて、その計算は入力ボックスの値によって変わります。
ヘルプははるかに他の人が指摘したように、それはプロトタイプ継承の問題です

おかげ

+2

問題はプロトタイプの継承にあります。この質問はStack Overflowで多く出てくる。ここで何が間違っているのかについては、[this](https://github.com/angular/angular.js/wiki/The-Nuances-of-Scope-Prototypal-Inheritance)を参照してください。 –

+2

@ JoshDavidMillerはそれをすべて言った。この[fiddle](http://jsfiddle.net/bmleite/UXsLj/)も確認してください。それは助けるかもしれません... – bmleite

+1

理想的には、$ rootScopeに何かを格納するべきではありません。コントローラ間で通信するには、サービスを使用する必要があります。 [このビデオアウト]をチェックしてください(http://www.youtube.com/watch?v=HXpHV5gWgyk) – Dogoku

答えて

18

を高く評価しています。入力モデルは、現在のスコープで生成され、rootScopeでは生成されません。

常に「。」を使用してください。あなたの意見でこれは動作します:

rootScope.fields = { 
    inputModel: '' 
} 

<input type="number" ng-model="fields.inputModel"/> 
23

this questionを参照してください - あなたはスコープに$rootプロパティを使用することができますし、結合は

<input type="number" ng-model="$root.inputModel"/> 

これは、ルートに直接結合するだろうコントローラに明示的に割り当てる必要はありません。

+0

ありがとう。それは私の多くの時間を節約しました。 –

関連する問題

 関連する問題