我有一个对象数组,我在模板中循环。
<div v-for="(list, idx) in collection" :key="list.id">
<misc v-if="!idx" :is-master="!idx" :selection="list" v-on:report="onSelectionReport"></misc>
<misc v-else :is-master="!idx" :selection="list"></misc>
</div>
如您所见,有两个“misc”标签。唯一的原因是我只希望“报告”事件从单个实例中冒出来。
这样可行,但在这种情况下有没有办法保存v-if / v-else结构? (这会导致一个misc标签)。
谢谢。
答案 0 :(得分:0)
您可以定义内联事件处理程序以检查idx
:
<div v-for="(list, idx) in collection" :key="list.id">
<misc :is-master="!idx" :selection="list" v-on:report="arg => idx || onSelectionReport(arg)"></misc>
</div>
然而,正如@Lawrence Cherone建议的那样,在组件内部执行此逻辑可能更为清晰 - 尤其是因为您无论如何都将idx
作为属性(通过is-master
)传递。