Javascript 使用Vue.js替换输入中的文件
我有Vue.js模板文件,其中包含包含文档的数据。我的页面有表格。表中有带有输入按钮的行上载文件,如下所示Javascript 使用Vue.js替换输入中的文件,javascript,vue.js,Javascript,Vue.js,我有Vue.js模板文件,其中包含包含文档的数据。我的页面有表格。表中有带有输入按钮的行上载文件,如下所示 <tr v-for="(doc, index) in documents"> <td :id="'doc-' + doc.id" v-show="doc.visible"> <div class="row"> <div class="col-md-9"> <a v-if="doc.document
<tr v-for="(doc, index) in documents">
<td :id="'doc-' + doc.id" v-show="doc.visible">
<div class="row">
<div class="col-md-9">
<a v-if="doc.document" :href="doc.document.file" v-text="doc.name"></a>
<div v-else v-text="doc.name"></div>
</div>
<div class="col-md-3">
<div class="row">
<div v-if="doc.document" class="col-md-8">
<label :for="'upload_doc_' + doc.id">
<span class="glyphicon glyphicon-upload text-primary" role="button"> Upload</span>
<input type="file"
:id="'upload_doc_' + doc.id"
class="hidden"
@change="replaceDoc($event, index)"
/>
</label>
</div>
</div>
</div>
</div>
</td>
但它似乎不包含任何数据,当我试图将其发送到服务器时,它会发送空字典。您是否尝试过使用
Vue.set或this.$set
而不是:
this.documents[index] = event.target.files[0]
试试这个:
this.$set(this.documents, index, event.target.files[0]);
或
你可以参考这个。嗯,也差不多。但我认为问题在于.documents[index].document是对象,event.target.files[0]是对象文件我认为如果设置正确,应该更改该项。
this.$set(this.documents, index, event.target.files[0]);
Vue.set(this.documents, index, event.target.files[0]);