javascript - 如何在 v-for 循环期间有条件地更改表格行样式?
问题描述
我正在尝试在 v-for 循环中更改表格行的背景颜色,当 global.globalGroupLevel 为 0 并且如果它不是 0 则将其更改回来。我知道我可以复制表格行并使用 v-if 和 v-else,但这看起来很乱。我考虑过在 tr 元素上使用三元运算符来更改样式,但不确定这是否可行,如果可行,那么我不知道该怎么做。
我目前的部分代码是这样的
<tbody>
<template v-for="global in orderItems">
<tr>
... Bunch of code
</tr>
</template>
</tbody>
如前所述,我可以选择这个...
<tbody>
<template v-for="global in orderItems">
<tr v-if="global.globalGroupLevel == 0" style='background: #ccc'>
... Bunch of code
</tr>
<tr v-else="global.globalGroupLevel != 0" style='background: white'>
... Bunch of code
</tr>
</template>
</tbody>
但这很混乱,并且对于更改 tr 背景颜色而言意义重大。
在做我需要做的事情时,我有更好的选择吗?
解决方案
作为最佳实践,我总是尽量避免使用内联样式,并将 CSS 保留在它的专用标签中。
所以你可以添加一个类:
<tr :class="['gray-group', { 'white-group': global.globalGroupLevel }]"></tr>
和CSS:
tr.gray-group {
background: #ccc;
}
tr.white-group {
background: white;
}
这里还有一个工作示例:js fiddle
推荐阅读
- javascript - 为创建和编辑页面使用相同表单组件的良好做法
- flutter - 文本从大到小的颤动动画
- windows - Windows 上的 Flutter:如何调用外部 dll?
- c# - 是否可以创建连接到另一个 websocket 的 websocket 服务器?
- jodatime - 为什么 kotlinx-datetime 存在?或者:为什么数据时间库如此依赖于平台?
- azure - Azure DevOps API - 如何引用其他管道作为资源参数
- typescript - 如何避免 VSCode 自动补全中的省略号?
- javascript - ReactJS:如何检测 XHR 请求之间的网络空闲
- android - 当应用程序关闭和锁定屏幕时,让 Flutter 保持清醒以接收来自 Firebase 消息的通知
- r - 使用现有因子级别有条件地更改某些行中的值,可能在 dplyr