Come posso chiamare $ watctGroup form link function didirettiva. Ho due semplici elementi di scope (intero) e mi piacerebbe guardarli in coppia. Suppongo che $ watchGroup sia più efficace di usare qualcosa come $ watch ("[element1, element2"], ..).
risposte:
5 per risposta № 1Come questo:
scope.element1=1;
scope.element2=2;
scope.$watchGroup(["element1","element2"], function(){/* your code here */});
Aggiornare:
Bare a che $watchGroup
iniziato ad essere disponibile in AngularJS 1.3, se si utilizza una versione precedente non funziona.
Esempio di come usare $watchGroup
in una direttiva:
angular.module ("testApp" , [])
.directive ("testDirective", function (){
return{
restrict:"A",
replace:true,
template: "<div ng-click="inc()">{{element1}} <br/> {{element2}}</div>",
link: function(scope, element, attrs){
scope.element1=0;
scope.element2=0;
scope.inc = function(){scope.element1++;scope.element2--};
scope.$watchGroup(["element1", "element2"], function(){
console.log("something changed!");
});
}
}
});