Ich versuche, die foo()
Funktion mit dem zu starten, @click
aber wie Sie sehen können, müssen Sie das Optionsfeld zweimal drücken, um das Ereignis korrekt auszulösen. Erfassen Sie den Wert erst beim zweiten Drücken von ...
Ich möchte das Ereignis auslösen, ohne es @click
nur v-model
auszulösen, wenn sich (srStatus) ändert.
Hier ist meine Geige:
javascript
events
vue.js
jnieto
quelle
quelle
foo()
besteht, keine Vorlagenänderungen vorzunehmen, verwenden Sie awatcher
Antworten:
Dies liegt daran, dass Ihr
click
Handler ausgelöst wird, bevor sich der Wert des Optionsfelds ändert. Sie müssenchange
stattdessen das Ereignis anhören :Stellen Sie außerdem sicher, dass Sie wirklich
foo()
bereit anrufen möchten. Vielleicht möchten Sie das auch nicht.quelle
Sie können dies tatsächlich vereinfachen, indem Sie die
v-on
Anweisungen entfernen :Und verwenden Sie die
watch
Methode, um auf die Änderung zu warten:quelle
Vue2: Wenn Sie Änderungen nur bei Eingabeunschärfe erkennen möchten (z. B. nachdem Sie die Eingabetaste gedrückt haben oder auf eine andere Stelle klicken), tun Sie dies (weitere Informationen hier ).
Wenn Sie Änderungen einzelner Zeichen (während der Benutzereingabe) erkennen möchten, verwenden Sie
Sie können auch
@keyup
und@input
Ereignisse verwenden. Wenn Sie zusätzliche Parameter übergeben möchten, verwenden Sie in der Vorlage z@keyDown="foo($event, param1, param2)"
. Vergleich unten (bearbeitbare Version hier )Code-Snippet anzeigen
quelle
@keyDown
Rücktaste mit jsfiddle.net/rLzm0f1q funktioniert (ich sage jedoch nicht, dass@input
das gut oder schlecht ist)Sie sollten verwenden
@input
:@input
wird ausgelöst, wenn der Benutzer den Eingabewert ändert.@change
Wird ausgelöst, wenn der Benutzer den Wert geändert und die Eingabe aufgehoben hat (z. B. irgendwo außerhalb geklickt).Sie können den Unterschied hier sehen: https://jsfiddle.net/posva/oqe9e8pb/
quelle
Nur um die richtige Antwort oben hinzuzufügen, können Sie in Vue.JS v1.0 schreiben
In diesem Beispiel wäre es also so
Siehe: http://v1.vuejs.org/guide/syntax.html#Arguments
quelle