0

ここで簡単なことをしようとしています。

私のコントローラーで:

  $scope.testObject = { name : 'john' };

  $scope.$watch('$scope.testObject.name', function (e, n, v) {
      console.log('reached');
  });

私からしてみれば:

  <input type="text"  ng-model="testObject.name"/>

テキスト ボックスは testObject の name プロパティにバインドされ、コントローラーが読み込まれると、コードは $watch 関数に入ります。

ここで、テキスト ボックスの値を編集すると、$watch 関数はトリガーされません。何故ですか ?

また、$watch の 3 番目の引数を true に設定しようとしましたが、効果はありませんでした。

4

2 に答える 2

1

これを使って:

$scope.$watch('testObject.name', function(e,n,v){
    console.log("reached");
});

次のように他のオブザーバーを追加することもできます。

$scope.$watch('testObject.attr1 + testObject.attr2', function(e,n,v){
    console.log("reached");
});

また:

$scope.$watch('testObject', function(e,n,v){
    console.log("reached");
}, true);
于 2013-07-23T14:15:06.293 に答える