2017-04-13 12 views
0

stateProviderの各ビューの入力を確認したいと思います。 問題点を示すPlunkerを用意しました。

$scope.$watch('Group', function(newValues, oldValues) { 
     console.log(newValues); 
}, true); 

私が入力1または入力2にデータを追加する場合は、$時計はまた、入力端子3と4 を観察します。しかし、私は最初の入力3にデータを追加した場合:私は$のように見て使用Plunker

または4を入力すると、$ watchはそれらの入力を観察しません。何が問題なのでしょうか?

答えて

1

あなたは他の州のためのcontrollerは言及しませんでした。だからうまくいかない。

$scope同じコントローラを使用するには、mainControllerの中に$scope.Group = {};を作成する必要があります。

$scope.Groupが作成されるので、あなたは、 item1 and 2に値を入れて、あなたは、 item3 and 4に値を入れたときに関連付けられたコントローラがないため動作しませんでした prototypal inheritance.

あなたplunkerの利点を利用するときあなたのplunker作品

あなたstateであり、mainController $scopeには$scope.Groupが存在しません。

さらに:あなたのPlunkerのHTMLに{{$$childHead.Group}} - {{$$childTail.Group}} を配置しようとするとitem 3 & 4が子 スコープとして作成されます参照してください。

このworking plunker.

Read more here

を参照してください。
0

ng-controller='mainController'もテンプレートに入力する必要があります。

次のように、inputタグにそれを置くことができます。

<input ng-controller="mainController" type="text" ng-model="Group.item4" placeholder="Group.item4">

関連する問題