2013-07-26 3 views

Antwort

1

Wenn Sie Winkel 1.1.4 verwenden, können Sie $watchCollection verwenden, hier ist der Code-Schnipsel aus dem Beispielcode in der Dokumentation.

$scope.names = ['igor', 'matias', 'misko', 'james']; 

$scope.$watchCollection('names', function(newNames, oldNames) { 
    $scope.dataCount = newNames.length; 
}); 
+0

-1: Dies ist nicht das, was das OP verlangt hat. Ihr Snippet beobachtet die $ scope.names für Änderungen. Bitte überprüfen Sie die Frage sorgfältig. Er wollte mehrere ähnliche Uhren zu einem Uhrausdruck "zusammenpacken". dluz 's letztes Fragment (Beobachtung einer Liste von Scope-Variablen) ist die nächste Sache, weil es ein Ausdruck ist, der zwei Scope-Variablen "beobachten" würde. – quetzalcoatl

38

Sie können unter einigen Variationen zu finden, wie $ watchCollection

http://jsbin.com/IYofiPi/4 verwenden - working example here.

Überprüfen Sie Ihre console.log, um zu sehen, dass das Ereignis ausgelöst wird.

Zusehen Artikel eines Array

$scope.cities = ['Salvador', 'London', 'Zurich', 'Rio de Janeiro']; //Array 

$scope.$watchCollection('cities', function(newValues, oldValues) { 
    console.log('*** Watched has been fired. ***'); 
    console.log('New Names :', newValues); 
}); 

Beobachten Eigenschaften eines Objekts

$scope.city = { 
    name: 'London', 
    country: 'England', 
    population: 8.174 
} 

$scope.$watchCollection('city', function(newValues, oldValues) { 
    console.log('*** Watched has been fired. ***'); 
    console.log('New Names :', newValues); 
}); 

eine Liste von Bereichen Variablen zuschauen ($ scope.firstPlanet, $ scope.secondPlanet)

$scope.firstPlanet = 'Earth'; 
$scope.secondPlanet = 'Mars'; 

$scope.$watchCollection('[firstPlanet, secondPlanet]', function(newValues){ 
    console.log('*** Watched has been fired. ***'); 
    console.log('New Planets :', newValues[0], newValues[1]); 
}); 

Ausgehend von AngularJS 1.3 gibt es eine neue Methode namens $watchGroup zum Beobachten einer Menge von Ausdrücken.

+0

+1: Das letzte Fragment ist das, wonach das OP gefragt hat. Cooler Trick, scheint zu funktionieren. – quetzalcoatl

+1

zw. Es gibt auch WatchGroup: http://StackOverflow.com/Questions/11952579/watch-multiple-Scope-Attributes-in-angularjs – quetzalcoatl

+0

Cool! Gut zu wissen @quetzalcoatl! Ich werde auch meine Antwort hier aktualisieren. Prost –

Verwandte Themen