我正在调用v-for
中每个项目的方法。该方法返回正确的对象,但我想在.card
的其他部分中访问该信息。例如让{{name}}
反映从该方法返回的赞助商名称。通常我会让方法将数据推送到Vue数据,然后通过item访问。但对200多件商品来说,这样做会很奇怪。 (也许我错过了那种逻辑中的东西)
我有以下VueJS设置:
HTML:
<div v-for="deal in deals">
<div class="card">
<h3>{{deal.name}}</h3>
<p>{{ getSponsor(key) }}</p>
<p>{{sponsor.name}}</p>
</div>
</div>
JS:
firebase () {
return {
deals: db.ref('deals'),
businesses: db.ref('businesses')
}
},
methods: {
getDealSponsor (key) {
db.ref('businesses').child(key).on('value', snap => {
return snap.val()
})
}
}
JSON:
deals
-SomeDeal(Firebase Key)
name: "Some Deal"
provider: -SomeBusiness (Firebase KEy)
businesses
-SomeBusiness (Firebase KEy)
name: "Some Business Name"
答案 0 :(得分:0)
没有真正的方法来制作一个临时变量&#34;在循环中,但您可以使用v-for
为其循环的内容创建别名的事实:
<div v-for="deal in deals">
<div class="card">
<h3>{{deal.name}}</h3>
<template v-for="sponsor in [getSponsor(key)]">
<p>{{ sponsor }}</p>
<p>{{sponsor.name}}</p>
</template>
</div>
</div>
如果key
只是组件的支柱,那么您可以根据它进行计算:
sponsor() {
return getSponsor(key);
}
并使用它,因为我使用了上面的别名。