【发布时间】:2019-09-10 19:22:21
【问题描述】:
使用 :ref 时图像未在循环中显示
我正在使用 FileReader() 来读取字段。
Vue 组件
<div v-for="(image, index) in imgFile" :key="index">
<img :ref="'image'+parseInt( index )">
{{image.name}}
</div>
<input type="file" class="file-upload-default" @change="onFileChange" multiple>
<span style="cursor:pointer" class="file-upload-browse">
<img src="/addmore.png" height="50" width="50">
</span>
export default{
onFileChange(e){
var selectedFiles = e.target.files;
for (var i=0; i < selectedFiles.length; i++){
this.imgFile.push(selectedFiles[i]);
}
if (selectedFiles) {
for (var i=0; i < this.imgFile.length; i++){
let reader = new FileReader();
reader.addEventListener('load', function(){
this.$ref["image"+parseInt( i )][0].src = reader.result;
}.bind(this), false);
reader.readAsDataURL(this.imgFile[i]);
}
}
}
}
我想显示从 eventListener 中选择的图像。
【问题讨论】:
-
key在您的模板中的<img>标记中是什么? -
您可能还想使用
this.$refs而不是this.$ref -
...将逻辑封装到自己的组件中可能会更好,更容易。
-
我能理解。能详细点吗?
-
抱歉,key 是错字。我编辑了我的问题
标签: javascript vue.js