如果我这样做:
<ul>
<li v-for="value in testData">
<span v-if="Array.isArray(value)" v-for="morevalue in value"> {{ morevalue }}</span>
<span v-else> {{ value }} </span>
</li>
</ul>
v-else 中的跨度也会在第二个 V-FOR 上循环,即使它上面没有任何 v-for,为什么?
这是 Vue 实例:
new Vue({
el: '#exercise',
data: {
testData: {
name: 'TESTOBJECT',
id: 10,
data: [1.67, 1.33, 0.98, 2.21]
}
}
});
最佳答案
v-for
的优先级高于 v-if
,(即)v-if
每次循环都会被执行。如果您想根据v-if
跳过v-for
的执行。我建议将循环嵌套在条件内。
<ul>
<li v-for="value in testData">
<template v-if="Array.isArray(value)">
<span v-for="morevalue in value"> {{ morevalue }} ></span>
</template>
<span v-else> {{ value }} </span>
</li>
</ul>
关于vue.js - v-for 与 v-if 处于同一级别,影响 v-else,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49164536/