В настоящее время я использую формат Controller As
для контрольных контроллеров.
Это отлично работает для того, чтобы держать объем значений на представлениях понятным и легким для подражания.
<div ng-app="myApp" ng-controller="myController as myctrl">
<ul>
<li ng-repeat="contact in myctrl.contacts">
<input type="text" ng-model="contact.name.first" />
</li>
</ul>
</div>
Однако при реализации $watch
я сталкиваюсь с проблемами, поскольку он, похоже, зависит от $scope
, поэтому следующее не будет работать.
angular.module('myApp',[])
.controller('myController',['contacts',function(contacts) {
this.contacts = contacts;
this.$watch('contacts', function(newValue, oldValue) {
console.log({older: oldValue, newer:newValue});
});
}]);
Я получаю undefined не функция в отношении this
, не имеющая метода $watch
.
Есть ли способ $watch
значения в формате Controller As
?