Javascript 使用nuxt.js导入文件(Vue等效于getElementById())
在我的一个组件中加载文件时遇到问题。在我使用getElementById()移动到Vue之前,它已经工作了。以下是我尝试过的: 在模板中:Javascript 使用nuxt.js导入文件(Vue等效于getElementById()),javascript,vue.js,nuxt.js,Javascript,Vue.js,Nuxt.js,在我的一个组件中加载文件时遇到问题。在我使用getElementById()移动到Vue之前,它已经工作了。以下是我尝试过的: 在模板中: <input type="file" accept=".obj" id="file" ref="OBJImport" name="objFile" @change="loadFileAsText()" single /> 在方法上: methods: { loadFileAsText: function() { if
<input type="file" accept=".obj" id="file" ref="OBJImport" name="objFile" @change="loadFileAsText()" single />
在方法上:
methods: {
loadFileAsText: function() {
if(process.client) {
this.files = this.$refs.OBJImport.files[0];
console.log(files);
}
}
但当我尝试上传文件时,我得到:
ReferenceError: files is not defined
我也尝试过不使用[0]
。将.files[0]
更改为.file
仍然会对文件产生相同的错误。我应该怎么做才能将我的文件从模板转换到我的方法?谢谢 从更改事件中删除()
:
<input type="file" accept=".obj" id="file" ref="OBJImport" name="objFile" @change="loadFileAsText" single />
您记录的文件不存在,这是您唯一的错误。
此外,我还提供了另一种获取文件的方法。工作得很好,解释得很好。非常感谢。
<input type="file" accept=".obj" id="file" ref="OBJImport" name="objFile" @change="loadFileAsText" single />
methods: {
loadFileAsText: function(e) {
if(process.client) {
//this.files = this.$refs.OBJImport.files[0];
//console.log(files); // Here is this.files, not files, this is your initial error.
this.files = e.target.files[0];
console.log(this.files);
}
}