我在项目中使用列表渲染(v-for)打印数组中的每个项目,以显示有关一系列书籍的信息。
但是,我试图在此循环中使用条件渲染,以便打印许多包含书的类别标签的li
元素。
如果数组中没有存储数据,我不希望li
在DOM中绘制。例如,对于第一本书Moby Dick,book标签的ul
仅包含两个HTML列表项。
这怎么办?到目前为止,我有以下内容...
<ul>
<li v-for="book in books">
<div class="item">
<div class="item-bd">
<h2>{{ book.title }}</h2>
<ul class="book-tags>
<li v-if="">{{book.tagOne}}</li>
<li v-if="">{{book.tagTwo}}</li>
<li v-if="">{{book.tagThree}}</li>
</ul>
</div>
</div>
</li>
</ul>
new Vue({
el: '#app',
data: {
books: [
{
title: "Moby Dick",
tagOne: "Kids Book",
tagTwo: "Fiction",
tagThree: ""
},
{
title: "Hamlet",
tagOne: "All Ages",
tagTwo: "Shakespeare",
tagThree: "Classic"
}
]
}
});
答案 0 :(得分:1)
根据您的问题,如果要保留三个<li>
项目,则只需检查以下各个标签是否存在:
<ul class="book-tags>
<li v-if="book.tagOne">{{book.tagOne}}</li>
<li v-if="book.tagTwo">{{book.tagTwo}}</li>
<li v-if="book.tagThree">{{book.tagThree}}</li>
</ul>