Vue.js:检查使用 v-if 条件的 v-for 循环是否渲染了任何项目?

标签 vue.js

如果我有以下代码:

<template v-for="(item, index) in items" v-if="item.name === 'foo'">
   <p>{{ item.name }}</p>
</template>

如果此循环没有输出,我将如何打印消息?

谢谢!

最佳答案

我将使用计算属性来创建过滤列表。然后您可以根据列表长度使用v-if。例如

computed: {
  fooItems () {
    return this.items.filter(({name}) => name === 'foo')
  }
}

并在您的模板中

<template v-for="(item, index) in fooItems">
  <p>{{ item.name }}</p>
</template>
<p v-if="fooItems.length === 0">
  Nothing to show
</p>

关于Vue.js:检查使用 v-if 条件的 v-for 循环是否渲染了任何项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48532258/

相关文章:

laravel - 在 url Vuejs 中放置分页号

javascript - vue 3 import vue-tables-3 但我收到错误 : "_vue.default is not a constructor"

vue.js - 无法在 Cypress Vue 组件测试中模拟模块导入

javascript - vue.js - 未在实例上定义但在渲染期间被引用

javascript - 如何在Vue-Native方法中返回React-Native组件

html - 在 <select> 上使用 v-model 会使第一个选项不出现在 select 中

javascript - 为什么高度为 : 0 can not work in css definition

javascript - 无法编辑由其他用户在 Firestore 中创建的文档 (Vue.js/Firestore)

javascript - 在vuejs中使用jquery函数

vue.js - VueJS 在点击时添加删除类