我需要在Vue中创建条件以检查数组是否包含值。
items: { [1,5,8,12,63]}
<div v-for="item in items">
<div v-if="item == 1">
Yes
</div>
<div v-else>
No
</div>
</div>
输出为: 是,不,不,不,
我只需要一次获得“是”和“否”。 我需要:
是的,不是
答案 0 :(得分:3)
v-for
只会遍历整个数组,而v-if
/ v-else
将有条件地为该数组中的每个项目呈现适当的代码块 。相反,您应该使用一种方法来检查您的items
列表中是否有数字。您可以使用indexOf
来做到这一点。
var app = new Vue({
el: '#app',
data: {
items: [1, 5, 8, 12, 63]
},
methods: {
itemsContains(n) {
return this.items.indexOf(n) > -1
}
}
});
<div id="app">
<div v-if="itemsContains(1)">
Yes
</div>
<div v-else>
No
</div>
</div>
如果需要的话,您也可以摆脱该方法并进行条件内联。
<div id="app">
<div v-if="items.indexOf(1) > -1">
Yes
</div>
<div v-else>
No
</div>
</div>
答案 1 :(得分:1)
var app = new Vue({
el: '#app',
data: {
items: [1, 5, 8, 12, 63]
}
});
<script src="https://cdn.jsdelivr.net/npm/vue"></script>
<div id="app">
<div v-if="items.indexOf(1) > -1">
Yes
</div>
<div v-else>
No
</div>
</div>