微信小程序picker的range和range-key用法


我们在获取后台的数据后要显示在页面的picker中,如上图所示,

但后台传过来的参数是以数组格式传过来的数据,里面是多项json结构的数据,

但是在picker中显示的只是每项json结构数据中的某一项,但需要给后台传的数据却是另一项,

例如:后台给我的数据是 position_array这个数组,我在picker上显示的是每一项数组里面的position这个数据
在这里插入图片描述
但要给后台传的参数却是value这一项。

这时候,就要用到range和range-key这两个参数。

range是你要显示的数组,range-key是数组中你要显示的那一项,也就是图示里面的position,
值得注意的是range="{{position_array}}"

range-key="{{‘position’}}" ,range-key中的数据要加引号也就是position!!!!!
才生效!

(在页面的data中默认显示选择的下标,
在picker中显示的时候 {{position_array[hx_index].position}} )

如果range-key="{{‘position’}}",没有加引号,那数据就不会显示出来
只会显示一个object
在这里插入图片描述

在获取数据的时候,使用 value="{{pic_array[hx_index].value}}",不用value也行,亲测过,
只要有 range="{{position_array}}" 和 range-key="{{‘position’}}" 数据一样出来,具体
情况自行查找。

不多说,下面粘代码,本文只有前端代码,后端代码,就是查询一个对象以集合的方式返回前端

js页面
Page({

   /**
    * 页面的初始数据
    */
  // 复制代码
  data:{
   //户型   这是一个本地的对象,然后绑定到页面上
   position_array: [],
  hx_index: 0
 },
   bindPickerChange_hx: function (e) {
   console.log('picker发送选择改变,携带值为', e.detail.value);
   this.setData({   //给变量赋值
   hx_index: e.detail.value,  //每次选择了下拉列表的内容同时修改下标然后修改显示的内容,显示的内容和选择的内容一致
  })
   console.log('自定义值:', this.data.hx_select);
  },
      onLoad: function () {
         var that = this;
         wx.request({
            url: "http://localhost:443/selectDepartment",  //后台要传参的路径
            data: {
            a: ""  //参数
            },
            header: {
            "Content-Type": "applicatiSon/x-www-form-urlencoded"
            },
            method: "get",
            success: function (res) {
               var hx=res.data
            that.setData({
               position_array: hx //把json数据赋值给变量pic_array_hx
      }) 
      } 
   })
},  
})
wxml页面
 <picker name="picker_hx" class="cybm_pic_1" value="{{pic_array[hx_index].pId}}" 
 data-selecthx="{{pic_array[hx_index].position}}" range="{{position_array}}" range-key="{{'position'}}"  
 bindchange="bindPickerChange_hx"  >
        <view class="picker" >
         部门:  {{position_array[hx_index].position}} 
        </view>
      </picker>
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值