vue.js - Vuetify 动态加载数据表行
问题描述
我有一个像这样的 vuetify 数据表
<v-data-table :items="items" :headers="headers" :search="search">
<template slot="items" slot-scope="props">
<td>{{props.item.id}}</td>
<td>{{props.item.make}}</td>
<td>{{props.item.year}}</td>
</template>
</v-data-table>
而不是这个,我想要的是使用 v-for 加载这些 td 元素
我试过了
<td v-for="i in headers" :key="i">{{props.item.i.text}}</td>
我如何在 vuetify 中做到这一点。我的 vuetify 版本也是 1.5.5
解决方案
<template slot="items" slot-scope="props">
<td v-for="(prop, key) of props.item" :key="key" :v-text="prop" />
</template>
...有效(目前)。注意代替
的用法。for...of
for...in
但这将为<td>
您的项目的每个属性输出一个。这意味着如果您的任何一个项目获得了附加属性(拥有或继承),它将破坏表格布局。
一种更安全的方法是使用辅助扩展方法来强制输出对象的结构:
methods: {
spreadItem(item) {
const { id, make, year } = item;
return { id, make, year };
}
}
并且,在模板中:
<template slot="items" slot-scope="props">
<td v-for="(prop, key) of spreadItem(props.item)"
:key="key"
:v-text="prop" />
</template>
更新了笔。当一些项目具有额外的道具时,这不会添加额外的单元格(除非您将它们添加到spreadItem
方法和headers
,当然,在这种情况下它们将显示为额外的列)。
推荐阅读
- shell - 将 awk 的结果存储在 shell 脚本中
- c - GCC错误包含单独文件时没有此类文件或目录
- python - 按列表划分列表?
- javascript - 无法使用传递给“npm start”的参数配置 React Pre Hook
- arrays - 使用 SDWebImage 时的 UICollectionView 错误
- javascript - 带有下拉选项和函数调用的搜索栏
- java - 在 Java 中实现线程级请求执行上下文
- android - 什么时候不调用 onRestoreInstanceState?
- python - 如何在同一个类中使用其他对象中的数据?
- sql - 在使用 Spring MVC 时,我试图使用 @Controller 将表数据插入另一个表数据,但不知道如何