picker组件时一个从底部弹起的可滚动的选择器(嵌入页面滚动器组件picker-view查看https://mp.weixin.qq.com/debug/wxadoc/dev/component/picker-view.html),支持5种选择器 :

普通选择器、多列、时间、日期和省市区 , 通过mode区分 , 默认是普通选择器 (分别对应的mode值为selector,multiSelector,time,date和region)

例如 :

<picker mode='selector' ></picker >

那怎么来实现一个普通的选择器呢

 <picker bindchange="bindPickerChange" value="{{index}}" range="{{array}}">
<view class="picker">
当前选择:{{array[index]}}
</view>
</picker>

bindchange 是value改变时触发的事件 , 通过event.detail.value获取当前列表索引

value value 的值表示选择了 range 中的第几个(下标从 0 开始)

range 绑定的是一个数组类型的数据

选择器触发事件

bindPickerChange: function(e) {
console.log('picker发送选择改变,携带值为', e.detail.value)
this.setData({
index: e.detail.value
})
}

需要在data中定义一个数组和下标

data:{
array: ['美国', '中国', '巴西', '日本'],
index:0
}

接下来 ,我们通过从后台接口动态获取数据添加到选择器,先看效果图

视图组件

<view class='flex-item title'>商户名称</view>
<view class='shopname'>
<picker bindchange="bindPickerChange" value="{{index}}" range="{{mchList}}" range-key='mchName'>
<view class="flex picker">
<view class='flex-item'>{{mchList[index].mchName}}</view>
<view class='ic_arrow_right'><image src='../../images/ic_arrow_right.png'></image></view>
</view>
</picker>
</view>

当我们的数据是一个数组对象时,需要用到range-key这个属性 , 通过它来指定数组对象中要显示的数据

例如result数组对象形式如下

"result": [{
"mchNumber": "v100000524665",
"mchName": "test",
"discount": 0.996
}]

我们想要指定mchName来作为显示器显示内容

range-key='mchName'

定义数组mchList和下标index ,从第一个开始

data: {
index: 0,
mchList:[],//商户
mchNumber:'',
discount: '',//系统参数折扣
},

选择器触发事件 更新index当前下标

  bindPickerChange: function (e) {
console.log(e.detail.value);
var mchObj = this.data.mchList[e.detail.value];
this.setData({
index: e.detail.value,
mchNumber: mchObj.mchNumber,
discount: mchObj.discount
})
},

作者:fozero

声明:原创文章,转载请注明出处,谢谢!http://www.cnblogs.com/fozero/p/7887700.html

标签:微信小程序

微信小程序开发之picker选择器组件用法的更多相关文章

  1. 微信小程序开发之picker

    一.绑定简单数组 通过bindChange控制index,使得当前选择值发生改变 示例1 data: { Data: ['A','B'], Index: 0, }, <picker class= ...

  2. 微信小程序开发之scroll-view

    本文主要介绍通过scroll-view实现回至顶部,如下效果 一.页面代码 顶部的工具栏放一个查找按钮,滚动区域实现分页,目的就是为了点击上一页\下一页时,自动回到顶部. scroll-view必须指 ...

  3. 微信小程序开发之formId使用(模板消息)

    基于微信小程序的模板消息:基于微信的通知渠道,我们为开发者提供了可以高效触达用户的模板消息能力,以便实现服务的闭环并提供更佳的体验.模板推送位置:服务通知模板下发条件:用户本人在微信体系内与页面有交互 ...

  4. 微信小程序开发之https从无到有

    本篇不讲什么是https,什么是SSL,什么是nginx 想了解这些的请绕道,相信有很多优秀的文章会告诉你. 本篇要讲的在最短的时间内,让你的网站从http升级到https. 开始教程前再说一句:ht ...

  5. 微信小程序开发之https服务器搭建三步曲

    本篇文章主要讲述3个方面的内容,如下: 1.SSL证书的获取 2.服务器 Nginx SSL 证书的配置. 3.如何兼容80端口和443端口以及为什么要同时兼容这两个端口. 1.SSL证书的获取 ht ...

  6. 微信小程序开发之http到https的转化

    小程序从公布到现在已经过去好几个月了,本来从小程序发布出来就准备抱着微信的大腿进行一波小程序开发的,但是由于公司项目小程序暂时不支持,也就只能一直搁浅.过年过来偶然和朋友谈起小程序,觉的工作再忙也得找 ...

  7. 微信小程序开发之IOS/Android兼容坑(持续更新)

    一.时间转换问题: 这不只是小程序上面的问题是ios系统 都有这个问题就是new  Date("2017-06-16") 在IOS会出现NAN的情况所以对于时间转换需要另行封装,解 ...

  8. 微信小程序 - 日期(起止)选择器组件

    2019-01-03 : 修复了日期day-1,新增了年月日(除去时分秒),删除了不必要的touchmove 新增: column: ""(年月日) 配置: pickerConfi ...

  9. 微信小程序开发之animation动画实现

    1. 创建动画实例 wx.createAnimation(OBJECT) 创建一个动画实例animation.调用实例的方法来描述动画.最后通过动画实例的export方法导出动画数据传递给组件的ani ...

随机推荐

  1. 自己实现String.prototype.trim方法

    今天呢 知乎看到一道题 说是网易面试题,要求自己写一个trim()方法, 实现 var str = "   a   sd  "; 去掉字符串两端的空格. 直接上码 var str ...

  2. Web、WCF和WS通过Nginx共享80端口

    团队中的一个Web项目面对的用户网络环境多是在严格的防火墙安全条件下,通常只开放一些标准的端口如80,21等. 上线初期,因忽略了这个问题,除了Web应用是以80端口提供访问外,WCF和WS是以其他端 ...

  3. [乐意黎原创] cuteftp 9 显示中文乱码

    当用FTP连接空间时.中文命名的文件名称会显示乱码,原来是编码设置错误.怎么改动呢? 改动方法例如以下: 选择. 工具--> 全局选项->传输: 1. 传输方法: ASCII 2. SFT ...

  4. json与xml的比较

    l 可读性: JSON和XML的可读性都很好,XML略占上风. l 可扩展性 XML天生有很好的扩展性,JSON当然也有,没有什么是XML能扩展,JSON不能的. l 编码难度 XML有丰富的编码工具 ...

  5. 基于Office 365的随需应变业务应用平台

    作者:陈希章 发表于 2017年9月7日 这是我去年10月底在微软技术大会(Microsoft Ignite 2016) 上面的演讲主题,承蒙大家抬爱,也沾了前一场明星讲师的光,我记得会场几乎是满座. ...

  6. ABP入门系列(12)——如何升级Abp并调试源码

    ABP入门系列目录--学习Abp框架之实操演练 源码路径:Github-LearningMpaAbp 1. 升级Abp 本系列教程是基于Abp V1.0版本,现在Abp版本已经升级至V1.4.2(截至 ...

  7. IDEA下Spring Boot的快速搭建

    下边使用的是IDEA快速搭建一个Spring Boot项目 (1)File--New-New Project (2)点击Next填写相应的信息 (3)点击Next,选择Dependencies,这里创 ...

  8. 微信小程序教学第四章第三节(含视频):小程序中级实战教程:详情-功能完善

    详情 - 功能完善 本文配套视频地址: https://v.qq.com/x/page/f0555nfdi14.html 开始前请把 ch4-3 分支中的 code/ 目录导入微信开发工具 这一节中, ...

  9. sudo,visudo

    visudo修改/etc/sudoers文件 用户名/%组名 主机名/主机别名/网段=(身份)命令 若(ALL)为空则为所有身份,即包含root身份 user1 ALL=/sbin/shutdown ...

  10. iOS 本地项目上传github,github管理项目配置

    一.注册github账号   首先需要注册一个github账号,注册地址:https://github.com 接着会来到这 然后会收到一封github发的邮件,进入邮箱验证 二.创建个人的githu ...