我目前有一个list列表循环,并且这个list列表里面有个name字段,是另外一个变量名的名称,演示结构如下:
Page({
data: {
user: [
{name: "zhangsan", age: '10'},
{name: "lisi", unique: '18'},
{name: "laowang", unique: '35'},
],
zhangsan:"是一个小学生",
lisi:"是一个初中生",
laowang:"是一个老司机"
},
……
然后,在wxml渲染这个user列表,同时动态展示关联字段的信息:
<view wx:for="user">
{{item.name}}今年{{item.age}}岁了,他的职业是:{{ [item.name] }}
</view>
职业是:后面这个{{ [item.name] }} 通过查资料,据说可以用方括号括起来,但是输出的依然是user里面的值,并没有和外部的变量关联起来,请问如何实现?
可以使用双花括号和拼接字符串的方式来嵌套动态变量名。例如,假设有如下数据:
Page({ data: { list1: ['A', 'B', 'C'], list2: ['D', 'E', 'F'] } })
在 wxml 中可以这样循环嵌套:
<view wx:for="{{list1}}"> <view>{{item}}</view> <view wx:for="{{list2}}"> <view>{{item}}{{index}}: {{list1[index] + item}}</view> </view> </view>
在内部循环中,使用
{{list1[index] + item}}
来动态拼接变量名。其中index
是内部循环的当前下标,item
是内部循环的当前元素。这样就可以实现在 wxml 循环中嵌套动态变量名。user: [
{ name: "zhangsan", age: '10' },
{ name: "lisi", unique: '18' },
{ name: "laowang", unique: '35' },
],
zhiye: {
zhangsan: "是一个小学生",
lisi: "是一个初中生",
laowang: "是一个老司机"
}
<view wx:for="{{user}}">
{{item.name}}今年{{item.age}}岁了,他的职业是:{{ zhiye[item.name] }}
</view>
wx:for="{{user}}"