2017-09-08 2 views
2

Zwei gleiche Beispiele funktionieren anders Attribut (nach Vue.js) funktionieren anders:Warum V-Modell

Erste

<input v-model="value" @input.once="setDirty" type="text" id="object-email"> 

Zweitens:

<input v-bind:value="value" v-on:input="value = $event.target.value" 
        @input.once="setDirty" 
        type="text" 
        id="object-email"> 

Im ersten Beispiel Wert Änderungen erst nach der zweiten Eingabe, während das zweite Beispiel korrekt funktioniert. Wenn wir @ input.once Attribut löschen, funktionieren zwei Beispiele gut.

P.S. Vue 2.4.0

+0

Ist der [.once-Modifizierer nicht entfernt/veraltet] (https://vuejs.org/v2/guide/migration.html#once-and-sync-Modifiers-on-v-bind-removed) in vue2 ? – bbsimonbb

+0

@ user1585345 Nein, laut Vue 2 [Dokumentation] (https://vuejs.org/v2/guide/events.html#Event-Modifiers), nicht Vue 1 –

Antwort

0

Dies war a bug, die in Version 2.4.3 behoben wurde.

Als Workaround für frühere Versionen können Sie einfach @keydown.once="setDirty" anstelle von @input.once verwenden.