我目前有一个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里面的值,并没有和外部的变量关联起来,请问如何实现?
可能是小程序不支持这个语法,换个思路,把职业重新写到数组里,直接从数组取值就行了
data: { user: [ { name: "zhangsan", age: '10' }, { name: "lisi", unique: '18' }, { name: "laowang", unique: '35' }, ], zhangsan: "是一个小学生", lisi: "是一个初中生", laowang: "是一个老司机" }, onLoad() { let user = this.data.user user.forEach(item => { item.job = this.data[item.name] }) this.setData({ user }) }
<view wx:for="{{user}}"> {{item.name}}今年{{item.age}}岁了,他的职业是:{{item.job}} </view>
或者是你把职业用对象包一下就能取到了
data: { user: [ { name: "zhangsan", age: '10' }, { name: "lisi", unique: '18' }, { name: "laowang", unique: '35' }, ], job:{ zhangsan: "是一个小学生", lisi: "是一个初中生", laowang: "是一个老司机" } },
<view wx:for="{{user}}"> {{item.name}}今年{{item.age}}岁了,他的职业是:{{job[item.name]}} </view>