Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/467.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用Vue.js替换输入中的文件_Javascript_Vue.js - Fatal编程技术网

Javascript 使用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

我有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" :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]);