Unterschied zwischen den Methoden $observe und $watch in AngularJS
AngularJS verwendet sowohl Watcher als auch Observer, um Änderungen im $scope-Objekt zu überwachen. Während beide auf Änderungen im $scope reagieren, gibt es wesentliche Unterschiede zwischen den beiden.
$observe:
- Methode verfügbar für das Attributes-Objekt
- Überwacht ausschließlich die Wertänderung von DOM-Attributen
- Wird hauptsächlich innerhalb von Anweisungen verwendet
- Geeignet zum Beobachten von Attributen, die Interpolation ({{}}) enthalten
$watch:
- Methode für das Scope-Objekt
- Überwacht einen „Ausdruck“, entweder eine Funktion oder einen String
- Strings werden als Angular ausgewertet Ausdrücke, ausgenommen {{}.🎜>
Kann in Controllern und Verknüpfungsfunktionen verwendet werden- Wird häufig zum Beobachten von Modell-/Bereichseigenschaften verwendet
-
Asynchrone Natur von Attribute mit Interpolation:
Attribute, die Interpolation beinhalten, werden nicht sofort ausgewertet. Daher sind $observe und $watch für die asynchrone Verarbeitung unerlässlich.
Empfehlungen:
Wenn kein isolierter Bereich verwendet wird, wird $watch empfohlen. Für isolierte Bereiche mit Attributen, die Interpolation enthalten, sollte $observe aus Konsistenzgründen bevorzugt werden.
Beispielhafte Anwendungsfälle:
$observe: Beobachten Sie den Wert von attr1= „Name: {{name}}“ innerhalb einer Direktive.- $watch: Überwachen Sie die Eigenschaft myModel.some_prop in einem Controller.
-
Zusätzliche Hinweise:
Sowohl $observe als auch $watch werden während jedes Digest-Zyklus ausgeführt.- Direktiven mit isolierten Bereichen ermöglichen $observe oder $watch für interpolierte Attribute im Fall der @-Syntax.
- Direkte Auswertung ($eval()) kann für Attribute verwendet werden, die Zahlen, boolesche Werte oder konstante Zeichenfolgen enthalten.
-
Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen den Methoden $observe und $watch in AngularJS?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!