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);
}
}