Obecnie używam formatu Controller As
do kontrolowania zakresu.
To działa doskonale, aby zachować przejrzystość i łatwość śledzenia zakresu wartości na widokach.
<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>
Jednakże, gdy wdrożenie $watch
używam do problemów, ponieważ wydaje się być zależna od $scope
więc dodaje nie będzie działać.
angular.module('myApp',[])
.controller('myController',['contacts',function(contacts) {
this.contacts = contacts;
this.$watch('contacts', function(newValue, oldValue) {
console.log({older: oldValue, newer:newValue});
});
}]);
uzyskać niezdefiniowane nie jest funkcją w odniesieniu do this
nie ma sposobu $watch
.
Czy istnieje sposób na uzyskanie wartości $watch
w formacie Controller As
?
Dzięki, @ExpertSystem, próbowałem wstrzykiwać '$ scope', ale próbowałem' $ scope. $ Watch (this.contacts, ... 'i nie zdawałem sobie sprawy z tego, że obserwowana wartość była zwracana w tym formacie. – Malkus
Pomóż mi zrozumieć http://plnkr.co/edit/mFugWfzT2bLGVxwJyBfT?p=preview.Nie widzę żadnych alertów podczas zmiany wartości :( –