【问题标题】:Vuetify access Vue instance data with v-for in v-data-tableVuetify 在 v-data-table 中使用 v-for 访问 Vue 实例数据
【发布时间】:2019-04-08 10:55:30
【问题描述】:

如何在 Vuetify 的 v-data-table 中使用 v-for 访问 Vue 实例数据

问题:表头 2 下未显示数据

<v-data-table
      :headers="headers"
      :items="tabular.table" :hide-actions="true"
      class="elevation-1"
    >
      <template v-slot:items="props" v-for="(table, index) in tabular.table" >
        <td :class="{'warn' : warning(index)}">{{ props.item.name }}</td>
        <td v-for="inner in table.inner" :class="{'warn' : !inner.data}">{{ props.item.inner.data }}</td>
      </template>
    </v-data-table>

tabular:{table: [
        {
          name: 'Table Data 1',
          inner: [{data: "false"}]
        }

小提琴: https://jsfiddle.net/m09uLgaz/1/

【问题讨论】:

  • 您将表的inner.data 设置为字符串"false"。尝试使用布尔值进行更改:inner: [{ data: false }]
  • 我试过了,表头2还是不显示数据

标签: vue.js vuetify.js


【解决方案1】:

你应该使用

<template v-slot:items="props" v-for="(table, index) in tabular.table">
    <td :class="{'warn' : warning(index)}">{{ props.item.name }}</td>
    <td v-for="inner in props.item.inner" :class="{'warn' : !inner.data}">{{ inner }}</td>
</template>

代替

<td v-for="inner in table.inner" :class="{'warn' : !inner.data}">{{ props.item.inner.data }}</td>

您不需要使用 props.item.inner,因为您在 inner 中有该引用。同样在对象 inner 中使用 true 和 false 作为布尔值而不是字符串。

编辑JSFiddle链接https://jsfiddle.net/0pw3264a/

更新了自定义排序的小提琴https://jsfiddle.net/qtLujh0e/

【讨论】:

  • 数据即将到来,但排序不起作用。为什么会这样?
  • 因为当我们通过对象属性访问元素时,它不是原始类型。对于桌子,它仍然是一个对象。您必须使用 custom-sort 属性对该列进行排序
  • 你能用它更新小提琴吗?不知道自定义排序道具
  • 我已更新小提琴以显示自定义排序。如果它回答了您的原始问题,请接受答案
  • 另外,请在提出此类问题之前尝试阅读文档,否则将来可能不会受到欢迎。
猜你喜欢
  • 2018-01-21
  • 1970-01-01
  • 1970-01-01
  • 2020-02-26
  • 2019-11-10
  • 2020-12-13
  • 2019-11-19
  • 1970-01-01
  • 2021-07-12
相关资源
最近更新 更多