如何在 vue.js 中动态上传图片
How to dynamically upload image in vue.js?
参见代码:codepen
我想按表格发布数据;
有一个添加图片按钮,当我第一次点击按钮并选择图片时,然后在页面中显示图片信息。当我再次单击按钮时,然后在页面中显示两个图像信息。
问题是:我无法将文件值设置为<input type='file' />
怎么做?
这是从原始代码笔分叉的潜在解决方案。
我更新了视图模型以包含文件数组。v-for
呈现该数组,并包含每个项的隐藏文件输入(与代码中的输入相同)。但是,与示例不同,文件输入未绑定到文件信息。相反,每当更改其值时,它都会调用 upload()
方法。upload()
方法处理基础文件信息的更新。完成此操作后,Add Image
链接需要做的就是将一个新对象推送到 files
数组上,然后在该文件的输入元素上触发 click 事件(在呈现后)。
相关代码如下。
目录
<ul>
<li v-for="file in files">
<div class="file_item">
<div class="info">
<strong>{{file.name}}</strong>
<p>{{file.size | kb}}</p>
</div>
</div>
<input id="file-{{$index}}" type="file" accept="image/*" @change="upload(file, $event)" style="display:none">
</li>
</ul>
<div class="value_btn">
<a href="#" v-on:click="addImage" class="add">
<span>Add Image</span>
</a>
</div>
爪哇语
var vm = new Vue({
el: "#item",
data: {
files : []
},
methods: {
addImage: function(){
this.files.push({ name: "", size: 0})
this.$nextTick(function () {
var inputId = "file-" + (this.files.length-1);
document.getElementById(inputId).click();
});
},
upload: function(file, e){
var f = e.target.files[0];
file.name = f.name;
file.size = f.size;
}
}
})
相关文章:
- 使用vue.js动态设置v-for
- 如何在vue.js中添加v-model动态创建的html
- 如何使用 Vue-Loader / Webpack 路径到外部(动态)资产
- 如何在 Vue.js 中添加动态组件/部件
- 添加 vue 组件动态
- Vue.js组件属性的动态值
- 在 Laravel 5.1 和 Vue JS 中保存多个数据动态表单
- 如何在 vue.js 中动态上传图片
- Vue-i18n动态语言环境与承诺不更新
- 动态注册本地Vue.js组件
- 在 vue.js 中渲染动态组件
- vue.js中的动态v模型
- Vue.js:监视对象的动态更改
- Vue.js 2.0在动态路由上的转换不会触发
- 不能动态传递Vue.js + webpack中图像的相对src路径
- 在动态数组中更新唯一的Vue模型
- 如何动态地向jquery中添加vue js函数
- 在vue.js中动态添加组件不工作
- 如何在vue.js中为动态组件添加道具
- 在Vue js中动态更新过滤器内容