Vue: v-model.numberが空の場合に属性を削除します

作成日 2017年05月22日  ·  4コメント  ·  ソース: vuejs/vue

この機能はどのような問題を解決しますか?

デザインパターンの問題を解決します。これはもちろん、空のときに文字列を生成するv-model.numberを含むMVMフローから予想されます。

数値を入力してからテキストを入力から削除すると、リアクティブデータオブジェクトで文字列に変わります。

これは確かにユーザビリティとキャストの大きな問題であり、モデルに空の文字列属性を保持する目的がわかりません。 空の場合はモデルからスプライスされます。テキストエントリに新しい属性を作成するのと同じように、その逆も同様です。

これは確かに解決する必要のあるデザインパターンの問題であり、毎回アプリケーションレベルで実装する必要はありません。これは、VueJS2に多くを追加する小さな修正であり、他の多くの人がこれについて私に同意すると確信しています。

提案されたAPIはどのように見えますか?

現在、入力が空の場合

v-model.number = "model.number"
モデル= {
番号: ""
}

入力が空の場合の対処方法

v-model.number = "model.number"
モデル= {
}

最も参考になるコメント

@posva Vueの反応性をさらに理解した後、文字列を返すよりもnullを返す方が間違いなく良いオプションです

全てのコメント4件

現在の動作は予想されるものだと思います。
Beause v-modelv-bind:valuev-on:input単なる構文糖衣であり、 inputイベントハンドラーがオブジェクトのプロパティを削除するシーンを作成していないようです(そして多分その特性の反応性を壊します)。

私は回避策を見つけます、ありがとう:)👍

#4742で見たように、これは予想される動作です。 その理由は、入力に値が指定されていないことをユーザーが知ることができるようにするためです。 そうしないと、ユーザーが0を入力し、空の入力を入力する可能性があります。

@posva Vueの反応性をさらに理解した後、文字列を返すよりもnullを返す方が間違いなく良いオプションです

このページは役に立ちましたか?
0 / 5 - 0 評価