javascript - 如何检查 vue.js 模板中的列表是否为空?

标签 javascript vue.js

很简单的问题。

在我的 vue.js 模板中,我有:

<template v-for="node in nodes">
  [[ node ]]
</template>

如果列表为空,我想返回列表中的节点或打印“N/A”。

我知道如何使用 js 函数执行此操作,但不确定如何从模板中完成相同的操作。

最佳答案

您应该同时检查 undefinedlength使用 Vue's v-if .如果你曾经使用过 asyncComputed例如,它将是 undefined直到异步方法解决。因此,nodes=null 为您提供保障, nodes=undefined , 和 nodes=[] .

<template v-if="!nodes">
  Loading
</template>
<template v-else-if="!nodes.length">
  Empty
</template>
<template v-else v-for="node in nodes">
  {{ node }}
</template>
或者将它们结合起来
<template v-if="!nodes || !nodes.length">
  Nothing To Show
</template>
<template v-else v-for="node in nodes">
  {{ node }}
</template>
我喜欢使用 !nodes.length而不是 length !== 0以防万一除了数组之外的意外结果出现在数据中,在这种情况下,它很可能会使用 empty模板而不抛出异常。打字也少!

关于javascript - 如何检查 vue.js 模板中的列表是否为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56454661/

相关文章:

javascript - 文本字段不通过AJAX传递数据

html - 为什么这些具有完全相同类的按钮具有不同的宽度?

vue.js - Webpack 不加载 Vue 的单文件组件 CSS

vue.js - Vuetify Tabs 作为父 prop 上的嵌套动态路由错误

javascript - 用随机彩色数字制作表格

javascript - 如何链接 `element` 和 `element.all` ?

Javascript变量类型(字节)

javascript - knockout js删除不起作用

javascript - 如何从 Vue 组件中删除事件监听器

firebase - 是否可以限制用户可用于登录 Firebase 应用的设备数量?