vue.js - v-for 与 v-if 处于同一级别,影响 v-else

标签 vue.js vue-directives

如果我这样做:

<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/

相关文章:

vue.js - 从不同的组件更改 vuex 状态?

javascript - 如何在 nuxt(vue) 中使用原始 html 文件?

javascript - 计算 vue 对象中的项目

vue.js - VueJS : vuex state not updating the component after change

vue.js - 使用 Jest/VueJS 按钮单击测试失败

javascript - 在 vue.js 中捕获 radio 输入值

javascript - 如何使用字符串作为 v-model 指令中的属性名称来访问 Vue 组件的数据属性?

javascript - Vue.js 问题 : Doesn't display data

javascript - Vue js如何防止按钮连续点击两次

javascript - Math.random().toString.slice 不是 Javascript 中的函数