微信小程序picker組件關於objectArray數據類型綁定

1、前言:

  我發現不少的同窗都在抱怨說微信小程序的picker的mode = selector/mode = multiSelector 沒法實現Object Array數據類型的綁定,其實不少人就想要和html中的下拉選中的經過選中獲取vaule中的屬性值,其實認真查看微信picker組件詳解的都知道實際上是能夠實現的,只不過微信給的實例是array的實例而object array實例是留給你們去動手的喲,在這裏我主要介紹的mode=selector 的objectArray實現。html

2、介紹:

普通選擇器: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組件詳解:https://developers.weixin.qq.com/miniprogram/dev/component/picker.html?search-key=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) {
    方法一:
經過對應數組索引訪問:
consoel.log(type[e.detail.value].id);
方法二: console.log(
'picker發送選擇改變,索引值爲', e.detail.value) console.log("選中的id值:"+e.target.dataset.id) console.log(e); this.setData({ index: e.detail.value }) }

 

頁面效果和輸出結果:

相關文章
相關標籤/搜索