AngularJS $watch array.

by qhoc

HTML

<div ng-app="">
    <div ng-controller="appCtrl">
        <ul>
            <li ng-repeat="item in items"> <a href="" ng-init="class=['one', 'two', 'three'];" ng-click="item.num=item.num+1" ng-class="class[item.num%class.length]">{{class[item.num%class.length]}}</a>

            </li>
        </ul> <a ng-click="delete()" href="">Delete</a>

        <p>{{ newValue }} {{ oldValue }}</p>
    </div>
</div>
</div>

JavaScript

angular.module('app', ['ngResource'])

function appCtrl($scope, $log) {
    $scope.items = [{
        num: 0
    }, {
        num: 1
    }, {
        num: 2
    }];
    $scope.$watch('items', function (newValue, oldValue) {
        console.log(newValue)
    }, true);
    $scope.$watch('items.length', function (newValue, oldValue) {
        $scope.newValue = newValue;
        $scope.oldValue = oldValue;
    });
    $scope.delete = function () {
        $scope.items.splice(0, 1);
    }
}