Currently I am using the Controller As
format for scoping controllers.
This works great for keeping the scope of values on the views clear and easy to follo
Even with the controllerAs
format, the $scope
is there.
In fact what controllerAs
does is bind the controller instance's this
to the $scope.
E.g. controller="myController as myctrl"
does (behind the scenes): $scope.myctrl = this
(where this
refers to the myController
instance).
So, you can just inject and use the $scope
for watches:
.controller('myController', function ($scope, contacts) {
this.contacts = contacts;
$scope.$watch(function () {
return contacts;
}, function (newValue, oldValue) {...});
});