表中的vue.js条件呈现
vue.js conditional rendering in tables
我有一个由vue
填充的表,如果有数据,我想在其中显示行,如果没有数据,则显示"无结果"的行。以下是jsfiddle中对它的基本介绍。
为什么即使满足v-if
条件,v-else
行仍会继续显示?
不幸的是,v-if
和v-for
不能一起工作。你可以将v-if
提升一级,比如:
<tbody v-if="my_tasks.length">
<tr id="retriever-task-{{ index }}" v-for="(index, task) in my_tasks" >
<td>{{ task.id }}</td>
<td>{{ task.type }}</td>
<td>{{ task.frequency }}</td>
<td>{{ task.status }}</td>
<td><i v-on:click="deleteTask(index, task.id)" class="fa fa-trash"></i></td>
</tr>
</tbody>
<tbody v-else>
<tr>
<td colspan="6">No tasks found.</td>
</tr>
</tbody>
您也可以使用伪元素template
:
<template v-if="my_tasks.length">
<tr id="retriever-task-{{ index }}" v-for="(index, task) in my_tasks" >
<td>{{ task.id }}</td>
<td>{{ task.type }}</td>
<td>{{ task.frequency }}</td>
<td>{{ task.status }}</td>
<td><i v-on:click="deleteTask(index, task.id)" class="fa fa-trash"></i></td>
</tr>
</template>
<template v-else>
<tr>
<td colspan="6">No tasks found.</td>
</tr>
</template>
来自Vuejs文档"v-else元素必须紧跟在v-if或v-show元素之后,否则将无法识别。"-https://vuejs.org/guide/conditional.html.看起来v-if后面的附加vue数据绑定属性正在破坏它(例如v-for和v-on)。
您可以使用v-show。例如:
<tr v-show="!my_tasks.length">
<td colspan="6">No tasks found.</td>
</tr>
yariash对v-if
和v-for
的看法是正确的。你可以按照他的建议去做,或者只是把v-else
改成v-if
的反面,即v-if="!my_tasks.length"
。
相关文章:
- 通过js在新选项卡中有条件地打开url
- 有条件更新d3.js力图中节点的最佳方法
- 淘汰赛.JS'启用'长度绑定条件不起作用
- JS条件故障排除
- 如何根据条件加载Anguar.js控制器
- 如何检查链接是否有文本,并根据文本值评估条件-Jquery/JS
- 如何使用React JS中的循环,根据条件渲染或不渲染表数据
- 如何在特定条件下完全禁用FullPage.js
- 条件显示淘汰js
- if条件中的递归混淆,JS如何解释“;真/假”;条件
- 通过运行条件编译防止JS泄露IE浏览器
- D3.js轴刻度条件格式
- Ember.js:如果控制器中满足某些条件,则在路由器中重定向
- Knockout js 条件选项绑定
- 根据角度 js 应用程序中的条件动态添加类
- Rails 4-具有依赖字段Rails的条件JS
- 在模态中使用 e.target 的复杂 if 条件.js
- 在Django中使用JS压缩器处理浏览器条件JS
- Grunt的条件js缩小
- 动态生成条件JS