搜尋

首頁  >  問答  >  主體

javascript - 小程式 picker 對於 objArray 怎麼取值

小程式 picker 元件,看 demo 裡面是有 objArray 這個類型,但是又沒有用到,我現在就是y有一組 objArray 需要用到,但是怎麼都不能正常顯示,麻煩大家幫忙看下:

小程式 demo 連結:picker

wxml:

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

js:

Page({
  data: {
    objectArray: [
      {
        id: 0,
        name: '美国'
      },
      {
        id: 1,
        name: '中国'
      },
      {
        id: 2,
        name: '巴西'
      },
      {
        id: 3,
        name: '日本'
      }
    ]
  },
  bindPickerChange: function(e) {
    console.log('picker发送选择改变,携带值为', e.detail.value)
    this.setData({
      index: e.detail.value
    })
  }
})

這樣的話,顯示的下拉選項就是[object Object],選取之後在頁面顯示的也是這樣,我現在是想下拉列表顯示name 裡面的值,然後知道選取的id,實在是不知道怎麼實現了。 。 。

阿神阿神2713 天前1225

全部回覆(2)我來回復

  • 我想大声告诉你

    我想大声告诉你2017-06-26 10:56:51

    使用這個屬性應該是可以的,修改後的程式碼如下:

    <picker bindchange="bindPickerChange" value="{{index}}" range-key="name" range="{{objectArray}}">
        <view class="picker">
          当前选择:{{objectArray[index].name}}
        </view>
    </picker>

    Update1:

    Page({
      data: {
        objectArray: [
          {
            id: 0,
            name: '美国'
          },
          {
            id: 1,
            name: '中国'
          },
          {
            id: 2,
            name: '巴西'
          },
          {
            id: 3,
            name: '日本'
          }
        ]
      },
      bindPickerChange: function(e) {
        console.log('picker发送选择改变,携带值为', e.detail.value)
        var index = e.detail.value;
        var currentId = this.data.objectArray[index].id; // 这个id就是选中项的id
        this.setData({
          index: e.detail.value
        })
      }
    })

    回覆
    0
  • ringa_lee

    ringa_lee2017-06-26 10:56:51

    加 range-key='obj.item',例如

    <picker bindchange="bindPickerChange" value="{{index}}" range-key="name" range="{{objectArray}}">
        <view class="picker">
          当前选择:{{objectArray[index].name}}
        </view>
    </picker

    回覆
    0
  • 取消回覆