2017-02-22 10 views
0
<!DOCTYPE html> 
<html> 
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script> 
    <body> 
     <div ng-app="myApp" ng-controller="abc"> 
      <p>Input something in the input box:</p> 
      <p>Name : <input type="text" ng-model="name" placeholder="Enter name here"></p> 
      <h1>Hello {{name}}</h1> 
     </div> 
     <script> 
      var app=angular.module('myApp',[]); 
      app.controller('abc', 
       ['$scope',function($scope) { 
        $scope.name='xyz'; 
        var count=-1; 
        $scope.$watch('name',function(nv,ov){ 
         console.log('OV',ov); 
         console.log('NV',nv); 
         $scope.name=nv; 
         count++; 
         console.log(count); 
        }) 
       }] 
      ) 
     </script> 
    </body> 
</html> 

ここで、$ watchは最低2回ではなく1回だけ実行されています。 ov$scope.nameを割り当てた場合$watchが11回実行されています。この場合、名前の値は変更しないでください。

+0

を望むこともできるダイジェストサイクルは二度起こるが、変化がないので、リスニング機能は一度だけ呼び出されます第1のダイジェストサイクルと第2のダイジェストサイクルとの間の値である。 [PLNKRに関するデモ](https://plnkr.co/edit/7Dc24Ekm4kaBO7Jp8C8G?p=preview) – georgeawg

答えて

0

1が私のために適切なO/Pを示しているの下に、コードの下に試してみてくださいあなたは同じ1

<script> 
    var app=angular.module('myApp',[]); 
    app.controller('abc',['$scope',function($scope){ 
    $scope.name='xyz'; 
    var count=-1; 
    $scope.$watch('name',function(data){ 
    console.log('data', data); 
    $scope.name=data; 
    count++; 
    console.log(count); 
    }) 
    }]) 
</script> 
関連する問題