Ich habe ein Formular, das Daten jedes Mal speichern muss, wenn etwas geändert wird. Ich habe ng-change
für alle Formularelemente verwendet, um eine Formularüberprüfung und eine Sicherung auszulösen. Im Fall von Optionsfeldern wird jedoch ng-change
ausgelöst, bevor der tatsächliche Wert aktualisiert wird, was beim ersten Versuch zu einem ungültigen Formular und bei allen nachfolgenden Versuchen zu einem veralteten Formular führt.ng-change ausgelöst, bevor Wert aktualisiert wird
Ich habe eine JSFiddle eingerichtet, um dies zu veranschaulichen. Die Konsole gibt aus, ob das Formular gültig ist oder nicht. Gleiches gilt, wenn ich den Wert $scope.form.test.$modelValue
ausdrucken würde.
Ist meine Logik fehlerhaft, ist dies ein gültiger Fehler, oder funktioniert es wie erwartet? Was kann ich im letzten Fall tun, um immer den tatsächlichen Wert zu erhalten?
ich mit Timeouts in Fällen wie dies in der Regel zu erreichen, vermeiden, weil sie scheinen, hacky, aber leider sehe ich keine Alternative, also werde ich weitermachen und dies umsetzen. Vielen Dank. –
$ queue terminiert den Callback für den nächsten Digest-Zyklus, so dass im aktuellen Digest-Zyklus das '$ scope.form'-Update durchgeführt wird, wodurch $ timeout weniger hacky wird :) –