使用 v-for 迭代时只创建一个 div
Create only one div while iterating using v-for
我有项目列表,其中一些项目需要打包在同一个 div
中,以便它们可以形成下拉部分。它看起来像这样:
<span v-for="item in items">
<div v-if="item.dropdown" class="dropdown">
<button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenuButton"
data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Dropdown button
</button>
<div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
<a class="dropdown-item" :href="item.href">
</div>
</div>
<span v-else>
...
</span>
</span>
基本上,我想将那些带有 dropdown
标志的项目分组到相同的 div,并带有一个按钮,在该按钮上将显示锚标记。在 v-else
部分是那些不应添加到下拉列表中的锚点。
甚至可以通过模板来做到这一点吗?
vue 模板中没有类似于“推送”的东西。所以唯一的办法就是使用两个循环。一个用于下拉项,另一个用于其余项。
<div v-for="dropdownitem in dropdownItems" :key="dropdownitem.id"> // I gess your items have an id.
...
</div>
<div v-for="item in otherItems" :key="item.id">
...
</div>
computed: {
dropdownItems(){
return this.items.filter(el => el.dropdown)
},
otherItems(){
return this.items.filter(el => !el.dropdown)
}
}
我有项目列表,其中一些项目需要打包在同一个 div
中,以便它们可以形成下拉部分。它看起来像这样:
<span v-for="item in items">
<div v-if="item.dropdown" class="dropdown">
<button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenuButton"
data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Dropdown button
</button>
<div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
<a class="dropdown-item" :href="item.href">
</div>
</div>
<span v-else>
...
</span>
</span>
基本上,我想将那些带有 dropdown
标志的项目分组到相同的 div,并带有一个按钮,在该按钮上将显示锚标记。在 v-else
部分是那些不应添加到下拉列表中的锚点。
甚至可以通过模板来做到这一点吗?
vue 模板中没有类似于“推送”的东西。所以唯一的办法就是使用两个循环。一个用于下拉项,另一个用于其余项。
<div v-for="dropdownitem in dropdownItems" :key="dropdownitem.id"> // I gess your items have an id.
...
</div>
<div v-for="item in otherItems" :key="item.id">
...
</div>
computed: {
dropdownItems(){
return this.items.filter(el => el.dropdown)
},
otherItems(){
return this.items.filter(el => !el.dropdown)
}
}