我正在使用v-for创建一个对象的人员列表,每个人都分配了一个编号。这是一个简化的例子:
home.js:
data: function () {
return {
agegroups: {
adult: 3,
child: 1,
infant: 2
}
}
},
home.blade.php:
<ul>
<template v-for="(num, agegroup) in agegroups">
<li v-for="index in num">
@{{ index }}
</li>
</template>
</ul>
这产生1 2 3 1 1 2
但是,我希望它能产生1 2 3 4 5 6
如何做到这一点?似乎可以通过一个简单的计数器轻松实现,但我该把它放在哪里?
答案 0 :(得分:0)
在这里:https://jsfiddle.net/mimani/7o4k0gf2/
<强> JS 强>
new Vue({
el: '#app',
mounted () {
var sum = 0
for (const key of Object.keys(this.agegroups)) {
sum += this.agegroups[key]
this.offset.push(sum)
}
},
data: {
agegroups: {
adult: 3,
child: 1,
infant: 2
},
offset: [0]
}
});
<强> HTML 强>
<ul>
<template v-for="(num, agegroup, idx) in agegroups" v-init="getOffset(num)">
<li v-for="index in num">
{{offset[idx] + index}}
</li>
</template>
</ul>
我必须创建一个基于agegroups
预先填充的变量来跟踪早期索引,然后将其添加到嵌套for循环的索引中。