Vue: Attribut entfernen, wenn v-model.number leer ist

Erstellt am 22. Mai 2017  ·  4Kommentare  ·  Quelle: vuejs/vue

Welches Problem löst diese Funktion?

Löst ein Design-Pattern-Problem, das natürlich von einem MVM-Flow erwartet wird, der v-model.number einen String erzeugt, wenn er leer ist.

Wenn ich eine Zahl eingebe und dann den Text aus der Eingabe lösche, wird er im reaktiven Datenobjekt zu einer Zeichenfolge.

Dies ist sicherlich ein großes Usability- und Casting-Problem, und ich sehe nicht den Zweck, ein leeres String-Attribut im Modell beizubehalten. Es sollte aus dem Modell herausgespleißt werden, wenn es leer ist - genauso wie Sie neue Attribute für den Texteintrag erstellen, sollte es umgekehrt sein.

Dies ist sicherlich ein Designmusterproblem, das gelöst werden sollte und nicht jedes Mal auf Anwendungsebene implementiert werden muss. Es ist eine kleine Korrektur, die VueJS2 viel hinzufügen wird, und ich bin sicher, viele andere werden mir darin zustimmen!

Wie sieht die vorgeschlagene API aus?

Derzeit wenn die Eingabe leer ist

v-model.number="model.number"
Modell = {
Nummer: ""
}

Was es tun soll, wenn die Eingabe leer ist

v-model.number="model.number"
Modell = {
}

Hilfreichster Kommentar

@posva Nachdem Sie die Reaktivität von Vue besser verstanden haben, wäre die Rückgabe von null definitiv die bessere Option als die Rückgabe einer Zeichenfolge

Alle 4 Kommentare

Ich denke, das aktuelle Verhalten ist das erwartete.
Da v-model nur Syntaxzucker für v-bind:value und v-on:input , scheint es keine Szene zu machen, dass der input Event-Handler eine Eigenschaft eines Objekts ( und möglicherweise die Reaktivität dieser Eigenschaft brechen).

Ich werde einen Workaround finden, danke :)

Wie Sie in #4742 gesehen haben, handelt es sich um das erwartete Verhalten. Der Grund dafür ist , dass der Benutzer erkennt, wenn kein Wert in der Eingabe angegeben ist . Andernfalls könnte vom Benutzer eine 0 eingegeben werden und auch eine leere Eingabe

@posva Nachdem Sie die Reaktivität von Vue besser verstanden haben, wäre die Rückgabe von null definitiv die bessere Option als die Rückgabe einer Zeichenfolge

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

robertleeplummerjr picture robertleeplummerjr  ·  3Kommentare

loki0609 picture loki0609  ·  3Kommentare

guan6 picture guan6  ·  3Kommentare

seemsindie picture seemsindie  ·  3Kommentare

lmnsg picture lmnsg  ·  3Kommentare