Angular.js: bug(ngModel): `$setViewValue` ruft `$$debounceViewValue` nicht auf, wenn es mit dem entsprechenden `Trigger` aufgerufen wird

Erstellt am 8. Juli 2016  ·  3Kommentare  ·  Quelle: angular/angular.js

Möchten Sie ein _Feature_ anfordern oder einen _Bug_ melden?
Insekt.

Wie ist das aktuelle Verhalten?
Der Aufruf von NgModelController#$setViewValue(value, trigger) ruft $$debounceViewValue() _nur_ auf, wenn es kein ngModelOptions oder ngModelOptions#updateOnDefault wahr ist.
Siehe hier .

Wenn das aktuelle Verhalten ein Fehler ist, stellen Sie bitte die Schritte zur Reproduktion und wenn möglich eine minimale Demo des Problems über https://plnkr.co oder ähnlich bereit (Vorlage: http://plnkr.co/edit/tpl:yBpEi4) .
Demo
Wenn ich auf beide Schaltflächen klicke, würde ich erwarten, dass beide NgModelController s aktualisiert werden.
Der mit {updateOn: 'blur'} ist nicht :enttäuscht:

Was ist das erwartete Verhalten?
Wenn NgModelController#$setViewValue(value, trigger) aufgerufen wird, wird auch $$debounceViewValue() aufgerufen, wenn ngModelOptions#updateOn trigger .

Was ist die Motivation / der Anwendungsfall für die Verhaltensänderung?
Damit es wie erwartet funktioniert :grin:

Welche Angular-Versionen und welche Browser/Betriebssysteme sind von diesem Problem betroffen? Bitte testen Sie auch mit den neuesten Stable- und Snapshot-Versionen (https://code.angularjs.org/snapshot/).
Erst auf 1.5.7 probiert, sollte aber viele Versionen wieder betreffen.

Sonstige Informationen (z. B. Stacktraces, verwandte Probleme, Vorschläge zur Behebung)
Nein :verwirrt:

forms low investigation broken expected use bug

Hilfreichster Kommentar

Übrigens, dies war ein Nebenprodukt einer Diskussion mit @jeserkin über gitter und er bekundete Interesse daran, es zu

Alle 3 Kommentare

Das scheint definitiv nicht ganz richtig zu sein. Das Seltsame ist, dass, wenn Sie auf die zweite und dann die erste Schaltfläche klicken, alle vier aktualisiert werden!

Der Grund, warum es funktioniert, wenn Sie die erste Taste drücken, nachdem Sie die zweite gedrückt haben, liegt an der Zusammenfassung, die durch das Klicken der Taste ausgelöst wird. Pro Digest wird eine ngModel Watch-Aktion ausgeführt, die die Werte synchronisiert (siehe hier ).

Das Problem ist, wenn dies außerhalb eines Digests geschieht. Und selbst innerhalb eines Digests werden die Werte nicht synchron aktualisiert, wie im ersten Fall (mit updateOnDefault === true ).

Übrigens, dies war ein Nebenprodukt einer Diskussion mit @jeserkin über gitter und er bekundete Interesse daran, es zu

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen