Dirty Check wird in der $apply-Methode erwähnt. Wenn die Evel-Methode erfolgreich analysiert wird, löst die Digest-Methode die Watch-Methode aus.
(1) Einführung in $watch
Wenn der Digest ausgeführt wird und sich der von Watch beobachtete Wert von der letzten Ausführung unterscheidet, wird er ausgelöst.
Die Uhr in AngularJS ermöglicht die Aktualisierung der Seite im Takt des Modells.
Die $watch-Methode wird hauptsächlich zur manuellen Überwachung eines Objekts verwendet, aber ein Ereignis wird ausgelöst, wenn sich das Objekt ändert.
(2)watch-Methodenverwendung
$watch(watchFn,watchAction,deepWatch)
watchFn: Zeichenfolge eines Winkelausdrucks oder einer Winkelfunktion
watchAction(newValue,oldValue,scope): watchFn ändert sich. Aufruf
deepWatch: Optionaler boolescher Befehl, um zu überprüfen, ob sich jedes Attribut des überwachten Objekts geändert hat
$watch gibt eine Funktion zurück. Wenn Sie sich von dieser Überwachung abmelden möchten, können Sie die Funktion verwenden
(3) Beispiel
Im vorherigen Beispiel wird ein Ereignis ausgelöst, wenn sich die Namensform 30 Mal ändert.
Der Controller-Code lautet wie folgt:
var firstController = function ($scope){ $scope.name='张三'; $scope.count=0; // 监听一个model 当一个model每次改变时 都会触发第2个函数 $scope.$watch('name',function(newValue,oldValue){ ++$scope.count; if($scope.count > 30){ $scope.name = '已经大于30次了'; } }); }
Der HTML-Code lautet wie folgt:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> </head> <body> <div ng-app=""> <div ng-controller="firstController"> <input type="text" value="" ng-model="name"/> 改变次数:{{count}}-{{name}} </div> </div> <script type="text/javascript" src="app/index.js"></script> <script type="text/javascript" src="../../vendor/angular/angularjs.js"></script> </body> </html>
Der Betriebseffekt ist wie folgt:
Sie können ihn die ersten 30 Mal nach Belieben ändern:
Bei 30-maliger Änderung , der Name ist auf „Bereits mehr als 30 Mal“ festgelegt:
Dies ist die Rolle der Uhr. Die zweite Funktion wird jedes Mal ausgelöst, wenn sich das Modell ändert.
(4) Der dritte Parameter der Überwachung
Wenn die Überwachung ein Objekt oder Array ist, zum Beispiel:
$scope.data = { name :'李四', count:20 }
Der Name und die Anzahl der Daten zu diesem Zeitpunkt Beides überwacht werden müssen, dann können Sie so schreiben:
$scope.$watch('data',function(){ },true)
Wenn Sie den dritten Parameter nicht hinzufügen, werden nur Daten überwacht, und das wird auch so sein wird nur ausgelöst, wenn sich die Datenreferenz ändert.
Wenn Sie also einige Referenzobjekte überwachen müssen, müssen Sie den dritten Parameter auf true setzen.
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der $watch-Methode in Angular. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!