Currently I am using the Controller As format for scoping controllers.
Controller As
This works great for keeping the scope of values on the views clear and easy to follo
Try this,
$scope.$watch(angular.bind(this, function () { return this.contacts; }), function (newValue, oldValue) { console.log((newValue + ' - ' + oldValue)); });