AngularJS Digest Cycle Test

AngularJS Digest Cycle Test

by cmyworld

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.15/angular.js"></script>
<div ng-app="myApp">
    <div ng-controller='Ctrl'></div>
</div>

JavaScript

var app = angular.module('myApp', []);

app.controller('Ctrl', ['$scope', function ($scope) {
    $scope.i = 0;
    $scope.j = 0;
    $scope.obj = {
        i: 0
    };
    $scope.$watch('i', function (newValue, oldValue) {
        console.log('New Value:' + newValue);
        console.log('Old Value:' + oldValue);
        if ($scope.i < 20) {
            $scope.i = $scope.i + 1;
        }
    });
    $scope.$watch('j', function (newValue, oldValue) {
        console.log('New Value:' + newValue);
        console.log('Old Value:' + oldValue);
        if ($scope.i < 20) {
            $scope.i = $scope.i + 1;
        }
    });
    $scope.$watch('obj', function (newValue, oldValue) {
        console.log('New Value:' + newValue);
        console.log('Old Value:' + oldValue);
        if ($scope.obj.i < 20) {
            $scope.obj.i = $scope.obj.i + 1;
        }
    });
}]);