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