如何在wxml循环当中嵌套动态变量名?

我目前有一个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里面的值,并没有和外部的变量关联起来,请问如何实现?

阅读 1.4k
1 个回答

可能是小程序不支持这个语法,换个思路,把职业重新写到数组里,直接从数组取值就行了

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>
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Microsoft
子站问答
访问
宣传栏