$scope.statuses = [];
$scope.$watch('statuses', function(newVal, oldValue) {
console.log(newVal, oldValue);
if (oldValue==newVal) return false;
console.log("st changed");
},true);
setTimeout(function() {
$scope.statuses.push("ahhh");
$scope.$apply();
},3000);
$apply function serves for notification of update to $scope.
live sample http://plnkr.co/edit/LUjESyZOPfIALE2q5YYi?p=preview
if statuses will host just primitive values, better use $watchCollection