Ich habe ein Code-Snippet:
%Vor% $watch
wird zuerst ausgelöst. Und dieses Code-Snippet gibt Folgendes aus:
Ist es richtiges Verhalten? Natürlich könnte ich die Werte auf Gleichheit überprüfen, aber welche Gründe wie Verhalten?
P.S. Sie könnten dieses Beispiel online ausprobieren: Ссылка
Laut Dokumentation :
Der Listener wird nur aufgerufen, wenn der Wert aus dem aktuellen Wert stammt
watchExpression
und der vorherige Aufruf von watchExpression
nicht
gleich ( mit Ausnahme des anfänglichen Laufs , siehe unten).
Nachdem ein Beobachter mit dem Bereich registriert wurde, ist der Listener fn
asynchron aufgerufen (via $evalAsync
) um den Watcher zu initialisieren.
In seltenen Fällen ist dies unerwünscht, da der Listener aufgerufen wird, wenn sich das Ergebnis von watchExpression
nicht geändert hat . Um dies zu erkennen
Szenario innerhalb des Listeners fn
, Sie können die newVal
und vergleichen
%Code%. Wenn diese beiden Werte identisch sind (===), dann war der Listener
wegen Initialisierung aufgerufen.
Tags und Links javascript angularjs