我有一个类似的代码
<template>
<div v-for="(item, i) in items" :key="i">
<div v-for="(subitem, index) in subitems" :key="index" v-
if="item.id==subitem.item_id">
{{count(subitem)}}
</div>
</div>
</template>
<script>
data() {
return {
items: [],
subitems: [],
}
}
watch: {
items : async function() {
const itm = await('get','/item')
this.items = itm
},
subitems : async function() {
const subitm = await('get','/sub_items')
this.subitems = subitm
},
},
</script>
items 和 subitems 数组从 watch 属性中的 api fetch 中获取数组的 values。每个子项 values 中都有项 id,现在我想要每个 v 的计数或长度,如果子项的输出等于项 id。怎么做?
谢谢
回答1
您不能将 v-for 和 v-if 放在同一个元素上,您能否提供有关您的数组结构的更多信息,以便我可以为您提供最好的方法,但是根据我所拥有的,您可以在获取项目和子项目后创建执行此功能
items.foreach((element)=>{
element.subitemCount=0;
subitem.foreach(item=>{
if(element.id==item.item_id){
element.subitemCount++;}}
对于你的 vuejs,你可以写这个
<div v-for="(item, i) in items" :key="i"> {{item.subitemCount}} </div>