/ / AngularJS: chiama $ watchGroup dall'ambito - javascript, angularjs, angularjs-directive, angularjs-scope

AngularJS: chiamata $ watchGroup dall'ambito - javascript, angularjs, angularjs-directive, angularjs-scope

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 № 1

Come 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!");
});
}
}
});

PLUNKER