最近在折腾微信小程序,遇到这么一个情况:后端返回一个key-value的对象数据,需要遍历对象的key-value,然后渲染到视图中。就像下面这样:
{
'2018-1-9':{
address: '....',
name: '....'
},
'2018-1-10':{
address: '....',
name: '....'
},
'2018-1-11':{
address: '....',
name: '....'
}
}
遇到也这种情况,有三种解决办法:
- 让后端改一下接口;
- 自己写个函数,将对象变成数组,然后再setData;
- 直接遍历对象。
下面是第三种方法的例子:
//wxml
<view wx:for="{{obj}}" wx:for-index="key" wx:for-item="value">
{{key}} : {{value.address}}
</view>
//js
data:{
obj: {...}
}
渲染出的结果如下:
<view> 2018-1-9 : ...</view>
<view> 2018-1-10 : ...</view>
<view> 2018-1-11 : ...</view>
当wx:for遍历对象时,wx:for-index会得到对象的key,wx:for-item会得到对象的value
微信小程序文档没有提到遍历对象,以上代码在微信开发者工具V1.02上测试通过。