Ich habe diesen Pfad eingeschlagen, weil @click ausgelöst wurde, bevor das v-Modell aktualisiert wurde (Beispiel hier: http://jsfiddle.net/5sH6A/308/ )
daher wusste ich nicht welchen Wert das hat. Ich dachte, ich würde meine Logik in einer Uhr ausprobieren: Funktion, fand aber das folgende Problem.
1.0.16
http://jsfiddle.net/5sH6A/303/
Klicken Sie auf das Kontrollkästchen und wählen Sie Abbrechen
Das Kontrollkästchen sollte leer sein
Das Kontrollkästchen wird aktiviert angezeigt, während die gebundenen Daten falsch sind
Hier scheint es um Kompatibilität zu gehen.
Es funktioniert ganz gut mit Edge 12 und IE11 unter Windows 10, bricht aber mit Chrome 49.0.2623.110
Es bricht auch mit Firefox 41 bei offenem Suse-Sprung
Das Festlegen des gleichen Werts in einem Watcher ist immer eine schlechte Idee ...
Ich würde sagen, der einfachste Weg, damit umzugehen, besteht darin, v-model
einfach nicht zu verwenden. Sie versuchen sowieso, den Wert selbst zu kontrollieren: http://jsfiddle.net/yyx990803/5sH6A/310/
Sehr spät zu dieser Party – aber nach all den Jahren immer noch ein Live-Thema für mich. Meine Lösung:
Wenn Sie eine Checkbox-Eingabe mit v-model verwenden, verwenden Sie den @change-Handler onchange . Funktioniert sowohl für IE als auch für vernünftige Browser.
Wenn Sie ein V-Modell-Kontrollkästchen und @click verwenden , wird der Wert Ihres V-Modell-Attributs (z. B. "flgChecked") seltsamerweise im Chrome/Firefox-Click-Handler umgekehrt. Das heißt, es ist falsch, wenn Sie das Kontrollkästchen gerade auf die Position „Ein“ geklickt haben, und wahr, wenn Sie es auf die Position „Aus“ geklickt haben. Also - umgekehrt. Aber IE meldet tatsächlich "richtig". Damit . . . Verwenden Sie @change.
Oder vielleicht übersehe ich einfach etwas.
Hilfreichster Kommentar
Sehr spät zu dieser Party – aber nach all den Jahren immer noch ein Live-Thema für mich. Meine Lösung:
Wenn Sie eine Checkbox-Eingabe mit v-model verwenden, verwenden Sie den @change-Handler onchange . Funktioniert sowohl für IE als auch für vernünftige Browser.
Wenn Sie ein V-Modell-Kontrollkästchen und @click verwenden , wird der Wert Ihres V-Modell-Attributs (z. B. "flgChecked") seltsamerweise im Chrome/Firefox-Click-Handler umgekehrt. Das heißt, es ist falsch, wenn Sie das Kontrollkästchen gerade auf die Position „Ein“ geklickt haben, und wahr, wenn Sie es auf die Position „Aus“ geklickt haben. Also - umgekehrt. Aber IE meldet tatsächlich "richtig". Damit . . . Verwenden Sie @change.
Oder vielleicht übersehe ich einfach etwas.