css - Quasar 表根据一个单元格中的值更改整行的样式

标签 css vue.js styles background-color quasar-framework

我正在尝试根据一个单元格中的值更改整行的样式。为此,我使用了模板样式,但它只允许我更改一个单元格的样式。

<q-table
  :data="rows"
  row-key="name"
>
  <template v-slot:body-cell-name="props">
    <q-td :props="props">
      <div>
        <q-badge
          :label="props.value"
          :class="(props.value=='Ice cream sandwich') ? 
            'bg-accent spc' : 'bg-white text-black'"
        ></q-badge>
      </div>
    </q-td>
  </template>
</q-table>
但是,是否可以更改整行的样式,以便整个单元格和行都填充背景色,而不仅仅是单元格值周围的小区域?这是它目前的工作原理:
https://codepen.io/pokepim/pen/pogNyVy
但所需的结果是,根据单元格中的值,整行都是紫色的。
编辑:
我不知道有多少列以及它们的名称是什么。

最佳答案

v-slot:body-cell-name仅设置您需要使用 body slot 的单元格的样式.

<template v-slot:body="props">
        <q-tr :props="props" :class="(props.row.name=='Ice cream sandwich')?'bg-accent text-white':'bg-white text-black'">
          <q-td key="name" :props="props">
            {{ props.row.name }}
          </q-td>
          <q-td key="calories" :props="props">
            <q-badge color="green">
              {{ props.row.calories }}
            </q-badge>
          </q-td>
          <q-td key="fat" :props="props">
            <q-badge color="purple">
              {{ props.row.fat }}
            </q-badge>
          </q-td>
          <q-td key="carbs" :props="props">
            <q-badge color="orange">
              {{ props.row.carbs }}
            </q-badge>
          </q-td>
          <q-td key="protein" :props="props">
            <q-badge color="primary">
              {{ props.row.protein }}
            </q-badge>
          </q-td>
          <q-td key="sodium" :props="props">
            <q-badge color="teal">
              {{ props.row.sodium }}
            </q-badge>
          </q-td>
          <q-td key="calcium" :props="props">
            <q-badge color="accent">
              {{ props.row.calcium }}
            </q-badge>
          </q-td>
          <q-td key="iron" :props="props">
            <q-badge color="amber">
              {{ props.row.iron }}
            </q-badge>
          </q-td>
        </q-tr>
      </template>
代码笔 - https://codepen.io/Pratik__007/pen/NWxbbMK?editors=1010
编辑 -
您可以为动态列做,也可以只循环列。
<q-td
            v-for="col in props.cols"
            :key="col.name"
            :props="props"
          >
            {{ col.value }}
          </q-td>

关于css - Quasar 表根据一个单元格中的值更改整行的样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62423680/

相关文章:

html - 如何更改此搜索栏的宽度?

javascript - 没有标签的 <p-button> 显示一个空的透明 <span> 样式 ui-button-text 覆盖其他文本

html - 是否可以在 SVG 中创建发光效果

jquery - 使一个 div 永远不会超过另一个 div 的长度

validation - vee-validate 以什么顺序与验证器一起工作? (同步和异步)

javascript 增量(大于++)样式属性

html - 子菜单中的三 Angular 形与主菜单项重叠

CSS 变量和 SCSS 混入

javascript - 从 Vue js 通过 axios 调用 google maps elevation api 时如何修复跨域读取阻塞?

java - Android Studio 中的编辑器配置