公司客户要求在订单中添加文件上传功能,就开始查阅资料之旅了,微信小程序扩展能力中有现成的文件上传组件uploader可以使用,而这个项目是在表单中添加上传图片功能,因此需要考虑一些代码逻辑。
首先,刚开始忽略了逻辑问题,直接在上传文件的时候通过接口提交到后台,接着遭到了质疑:“如果用户没提交表单,上传的图片就已经到后台了,有点不合逻辑吧”
然后,重新整理逻辑,先把图片临时缓存一下,提交表单的时候,拿到缓存数据,通过接口把图片提交到后台,再把表单数据提交到后台(两个接口是分开的,后台给的,就这样用呗)
uploader简介
uploader是微信小程序WeUI组件库中的一个图片上传的组件,可以在小程序开发文档中--扩展能力--表单组件中找到相关用法。
这是一个集合了图片选择、上传、预览、删除的完整组件,属性定义也比较全面,可以自定义上传个数,有上传成功提醒和失败提醒,点击预览功能等,基本可以涵盖图片文件上传的所有功能要求。
用起来也很方便,在json文件中加入以下引用(可在官方文档找到),然后在wxml文件中直接引入该组件就行,使用起来很方便
{
"usingComponents": {
"mp-uploader": "weui-miniprogram/uploader/uploader"
}
}
官方文档提供了简单的使用案例,如图所示。
通过改变数组长度动态增删组件<block wx:for="{{数组}}">
组件
</block>
1
2
3
1
2
3
2、点击添加按钮,增加数组的成员,组件相应增加
点击删除按钮,减少数组的成员,组件相应删除
二、示例
wxml:
<view>
<button bindtap='onTapAdd'>添加input组件</button>
<button bindtap='onTapDel'>删除Input组件</button>
<block wx:for="{{obj}}" wx:key>
<input value="{{item}}"></input>
</block>
</view>
1
2
3
4
5
6
7
1
2
3
4
5
6
7
js:
data: {
obj:[]
},
/***增加组件 */
onTapAdd:function(e){
var temp=this.data.obj
temp.push(this.data.obj.length)
this.setData({
obj:temp
})
},
/***** 删除最后一个组件,也可以修改删除指定组件*/
onTapDel:function(e){
var temp = this.data.obj
temp.pop(this.data.obj.length)
this.setData({
obj: temp
})
},
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)