欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

微信小程序picker组件关于objectArray数据类型的绑定方法

程序员文章站 2023-02-16 09:51:15
一、前言: 我发现很多的同学都在抱怨说微信小程序的picker的mode = selector/mode = multiselector 无法实现object array...

一、前言:

我发现很多的同学都在抱怨说微信小程序的picker的mode = selector/mode = multiselector 无法实现object array数据类型的绑定,其实很多人就想要和html中的下拉选中的通过选中获取vaule中的属性值,其实认真查看微信picker组件详解的都知道其实是可以实现的,只不过微信给的实例是array的实例而object array实例是留给大家去动手的哟,在这里我主要介绍的mode=selector 的objectarray实现。

二、介绍:

 普通选择器:mode = selector

属性名 类型 默认值 说明
range array / object array [] mode为 selector 或 multiselector 时,range 有效
range-key string 当 range 是一个 object array 时,通过 range-key 来指定 object 中 key 的值作为选择器显示内容
value number 0 value 的值表示选择了 range 中的第几个(下标从 0 开始)
bindchange eventhandle value 改变时触发 change 事件,event.detail = {value: value}
disabled boolean false 是否禁用

微信picker组件详解:

首先我的数据格式是:[{ name: '服务质量', id: 20 }, { name: '服务品质', id: 24 }, { name: '服务速度', id: 25}]

.wxml页代码:

//其中range为数据源,value为下标索引,bindchange为change改变事件
<picker range='{{type}}' value='{{idx}}' bindchange='change' range-key="name" data-id='{{type[index].id}}'>
<view class='picker'>{{type[index].name}}</view>
</picker>

.js代码:

/**
  * 页面的初始数据
  */
 data: {
  type: [{ name: '服务质量', id: 20 }, { name: '服务品质', id: 24 }, { name: '服务速度', id: 25}],
  index: 0,//索引
 },
 change: function (e) {

  console.log('picker发送选择改变,索引值为', e.detail.value)
  console.log("选中的id值:"+e.target.dataset.id)
  console.log(e);
  this.setdata({

   index: e.detail.value

  })

 }

页面效果和输出结果:

微信小程序picker组件关于objectArray数据类型的绑定方法

微信小程序picker组件关于objectArray数据类型的绑定方法

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。