Understanding digest cycle
by cmyworld
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.16/angular.js"></script>
<div ng-app ng-controller='ctrl'>
i: {{i}}<br>
j: {{j}}<br>
k: {{k}}<br>
obj:{{obj}}
<button ng-click='clickMe()'>Click Me</button>
</div>
JavaScript
function ctrl($scope,$timeout) {
var obj1={id:1};
var obj2={id:2};
var obj3={id:3};
var obj4={id:4};
var obj5={id:5};
var obj6={id:6};
$scope.$watch("i", function (n, o) {
console.log("i updated! ->" +n);
});
$scope.$watch("j", function (n, o) {
console.log("j updated! ->" + n);
});
$scope.$watch("obj", function (n, o) {
console.log("obj Data changed! ->" + JSON.stringify(n));
});
$scope.i=0;
$scope.i++;
$scope.i++;
$scope.i++;
$scope.i++;
$scope.i++;
$scope.i++;
$scope.obj={};
$scope.obj=obj1;
$scope.obj=obj2;
$scope.obj=obj3;
$scope.obj=obj4;
$scope.obj=obj5;
$scope.obj=obj6;
$scope.j=0;
for(var i=0;i<5000000;i++) $scope.j++;
$scope.k=0;
setInterval(function() {
$scope.k++;
},1000);
$scope.clickMe=function() {
};
}