ファイル入力でv-model
を使用することはできません、Vueはv-on:change
を使用する必要があると言います。Okなので、v-on:change
が、入力ファイルの「コンテンツ」をdata
プロパティにバインドするにはどうすればよいですか?
コンポーネントでthis.file
にバインドしたいとしましょう:
export default {
data() {
file: null
},
// ...
}
HTML部分は次のとおりです。
<input id="image" v-on:change="???" type="file">
<!-- ^- don't know how to bind without v-model -->
バインディングはどのようにすればよいですか?
onchange
イベントでは、イベントオブジェクトを関数に渡して処理する必要があります。
onFileChange(e) {
var files = e.target.files || e.dataTransfer.files;
if (!files.length)
return;
this.createImage(files[0]);
},
詳細については、 https://codepen.io/Atinux/pen/qOvawK/ を参照してください
ファイル入力でv-model
を使用することは意味がありません。ファイル入力に値を設定できないためです-双方向バインディングはここで何をすべきでしょうか?
v-on:change
を使用するだけです