提供微商城·微分销·小程序开店需求
5分钟开通你的微信商城店铺!2020-09-28 作者:黄保
微信小程序上传图片组件已经是当下最热门的话题,下面将从多方面来谈谈微信小程序上传图片的内容。
最近在微信小程序上要实现上传图片的功能,因为多个页面都会用到这个功能,我试着就像网页开发一样,写一个能复用的组件。
上传图片的功能,微信小程序已经提供了相应的组件和API,结合 weui 样式,如果不考虑复用的话,很容易实现(官方 demo 就可以拿来用 ^_^ )。
如果要复用,可以利用模板,但是会面临微信小程序的很多限制。
限制
举个例子,下面是一个模板文件 customer.wxml ( 注意模板文件里绑定了一个回调函数 sayHello )
<template name="customer" data-customerid="{{ id }}" bindtap="sayHello">
<text>{{ name }}</text>
<text>{{ gender }}</text>
<text>{{ age }}</text>
<block wx:for="orders" wx:for-item="order">
<view>{{order.id}}</view>
<view>{{order.detail}}</view>
</block>
</template>
页面 A.wxml 引用了这个模板文件 :
<import src="path/to/customer.wxml">
<template is="customer" data="{{...customer}}"></template>
如果要显示模板里的 orders 部分,页面 A 的 js 文件里 data 必须有一个名为 customer 的 key (可以通过 setData 设置 name/gender/age ,但不能通过 setData 设置 orders ,这样会报错。猜测是因为setData 在模板解析之后执行,解析模板时 name/gender/age/orders 都为 undefined ,name/gender/age 为 undefined 时不显示就行,但 wx:for 会遍历 orders ,遍历时调用 hasOwnProperty 方法,这时就报错了。),如果要调用模板里的回调函数 sayHello ,同样必须在页面 A 的 js 文件里先定义它:
// A.js
Page({
data: {
customer: {} // 可以先写成空 hash ,稍后更新,但 key 必须先存在
},
sayHello: function(e){
// say hello
// e.target.dataset.customerid
}
})
解决办法
因为这两个限制,必须找出一个办法让模板文件能动态改变引用它的文件(以下称为宿主)的作用域下的一些变量和方法,如下:
// A.js
require('path/to/customer.js');
Page({
data: {
customer: {}
}
onLoad: function(){
// this 是宿主的执行上下文环境
// this.data 可以访问 data
// this.setData 可以更新 data
// this.func = function() {} 可以往宿主增加新方法
new Customer(this);
}
})
// customer.js
// 这里用到 es6 的类定义语法
class Customer {
constructor(pageContext){
this.page = pageContext
this.page.sayHello = this.sayHello
}
sayHello(e){
// say hello
// e.target.dataset.customerid
}
}
module.exports = Customer
微信小程序商城系统开发其实很简单,只需要五步就可以完成,整个过程包括开发、上线、发布都可以轻松搞定...详情
推荐文章
微信小程序滚动字幕已经是当下微信小程序开发最热门的话题,下面将从多方面来谈谈微信小程序滚动字幕及弹幕的实现技巧...
2017年6月14日,微信小程序开发教程已经是当下最热门的话题,下面将从多方面来谈谈Array数组对象相关的内容。...
最近在微信社群都可以看到拼多多的拆红包的界面,这又是一款拼多多的裂变营销方式,很多朋友对此表示很怀疑,到底是不...
Hishop最新消息,有这样一个小程序可以无需询问,就知道朋友的位置了,那么是如何定位分享位置的呢。...
天店收银系统有星耀、星云、标准三个版本,每套系统版本的价格都有所不同,价格从800元起,下面小编就为大家从适用业态...
收银系统小程序的开通流程 1. 选择合适的收银软件 目前市场上有多种收银软件提供小程序店铺功能。例如,店益就是一款能...
在互联网高速发展的今天,线上线下一体化的商业模式已成为主流。特别是对于零售行业而言,将收银系统与微信公众号对接...
收银系统对接微信小程序的流程 准备工作:首先,商家需要准备好收银系统和小程序的开发环境。对于收银系统,可以使用...
直接说答案:目前是不能直接推送自己的小程序的。 不过也不是说没有办法,可以通过视频号小店,然后跳转到自己的微信...
第一:线上线下收银系统 线上线下收银系统是一种结合了实体店铺与在线销售渠道的技术解决方案。这种系统不仅提高了收...