我的想法是比较独特的,大家如果有什么别的建议也可以提一下
首先我像利用两个v-for语句遍历两个数组,一个数组负责填充字段,另一个负责填充数据
"loading" :finished="finished" finished-text="没有更多了">
for="name in listname" :key="name" :title="name" v-for="item in list" :key="item" :title="item" icon="star"/>
但是会出bug,我现在在想是不是没有这种功能啊。大家有没有别的思路,单条单条的写就算了。我想设置的高级一点不想字段受限。
就没这么写的, 不可以把两个 v-for 写在一个标签上面,如果你想达到你的效果 为什么不考虑一下 对象数组的形式,而且数值填入的话字段也不是title吧 应该有一个是 value 吧 你写成这样 [{name: '****', value: '89898'}] , 这样的形式数组,然后再去遍历不就完成了?
该回答引用ChatGPT
你的想法是使用两个v-for循环来遍历两个数组并显示数据。然而,Vue.js中的v-for指令只能在一个元素上使用一次,所以你的代码会出现错误。
解决这个问题的一种方法是将两个数组合并为一个对象数组,其中每个对象都包含一个名字和一个数据值属性。然后,你可以使用单个v-for指令来遍历对象数组,并使用v-bind指令来动态设置标题和图标属性。
以下是实现此目标的代码示例:
<van-list v-model="loading" :finished="finished" finished-text="没有更多了">
<van-cell v-for="item in combinedList" :key="item.name" :title="item.name" :icon="item.icon">{{ item.value }}</van-cell>
</van-list>
<script>
export default {
data() {
return {
loading: false,
finished: false,
listname: ['字段1', '字段2', '字段3'],
list: ['数据1', '数据2', '数据3'],
}
},
computed: {
combinedList() {
return this.listname.map((name, index) => ({
name,
value: this.list[index],
icon: 'star',
}))
},
},
}
</script>
在上述示例中,我们使用computed属性来计算一个新的对象数组combinedList,其中每个对象都包含一个name属性(来自listname数组),一个value属性(来自list数组)和一个icon属性(在此示例中为固定值'star')。在模板中,我们使用单个v-for指令来遍历combinedList数组,并为每个van-cell元素动态设置标题,图标和内容。