收藏
回答

wxml中for循环 对象取值取不到?

例如:取出循环中id为31的json中的值


var json = {31: "31", 33: "33", 37: "37"}


wxml:


<view wx:for='{{data}}'>

    <text>json: {{json[item.id]}} / data: {{item.id}}</text>

</view>



结果只有 json: / data: 31

最后一次编辑于  2018-08-31  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏关注问题回答

7 个回答

  • 莫过于此
    莫过于此
    2018-08-31

    前面的key改成字符串试试

    2018-08-31
    赞同
    回复 2
    • 海坤
      海坤
      2018-08-31

      不行

      2018-08-31
      赞同
      回复
    • 再见,电脑崽
      再见,电脑崽
      2018-08-31回复海坤

      目测wxml中对象不能直接被wx:for遍历,请转换为数组形式[{id:31,value:31},{id:32,value:32}]

      2018-08-31
      赞同
      回复
  • Eric Huang
    Eric Huang
    2018-08-31

    你好,写法应该是 wx:for="{{json}}",这里的 json 定义在 Page (或component) 的 data 字段里的。然后你访问的遍历的值需要通过index和item进行访问。例如:


    Page({

        data: {

        json: { 31: "31", 33: "33", 37: "37" }

        }

    })


    <view wx:for='{{json}}'>

        {{index}} : {{item}}

    </view>


    2018-08-31
    赞同
    回复 2
    • 海坤
      海坤
      2018-09-01

      你好 wx:for 的是data,不是这里定义的json ;{{json[item.id]}} 这个值取不到

      2018-09-01
      赞同
      回复
    • Eric Huang
      Eric Huang
      2018-09-01回复海坤

      你这里的 item.id 是什么

      2018-09-01
      赞同
      回复
  • 半夏
    半夏
    2018-09-01

    为啥要这样写,写成数组不行吗,通过下标来获取比这好多了吧

    2018-09-01
    赞同
    回复