在 Vuetify 数据 table、table 列中带有槽模板
In the Vuetify data table, table column with slot template
在 Vuetify 数据 table 中,对于带有插槽模板的 table 列,是否可以使用带有 Camel 大小写的列名,目前仅支持列名,例如模型中的小写字母
这不起作用:
<template v-slot:item.firstName="{item}">
<span>{{item.prefix}} {{item.firstName}} {{item.lastName}} </span>
</template>
这行得通:
<template v-slot:item.firstname="{item}">
<span>{{item.prefix}} {{item.firstname}} {{item.lastname}} </span>
</template>
我的数据模型具有这样的属性。
contactsList: {
{lastName : "Ray",
firstName : "Sam",
prefix : "Dr."},
{lastName : "Bank",
firstName : "Paul",
prefix : "Jr."}}
我玩了一下,我不知道确切的原因,但它似乎与 headers 更相关。只要您将 headers 设为小写,问题就不会出现。您甚至可以将插槽中的每个字母大写
HTML:
<div id="app">
<v-app id="inspire">
<div>
<v-data-table
:headers="headers"
:items="items"
>
<template v-slot:item.firstNaMe="{item}">
<span>test1</span>
</template>
<template v-slot:item.Lastname="{item}">
<span>test2</span>
</template>
</v-data-table>
</div>
</v-app>
</div>
JS:
new Vue({
el: '#app',
vuetify: new Vuetify(),
data () {
return {
items: [
{firstName: 'John', Lastname: 'Doe' },
{firstName: 'Jane', Lastname: 'Doe' }
],
headers: [
{ text: 'first name', value: 'firstname' },
{ text: 'last name', value: 'lastname' }
],
}
},
})
为 v-slot
道具分配传递 props
而不是 { item }
。
这样您就不必担心header.value
;按原样输入密钥名称,而不必考虑字母大小写。 注意:当你想传递一个对象时,你必须设置为小写。
之前(即 OP 问题中的示例):
<template v-slot:item.firstName="{item}">
<span>{{item.prefix}} {{item.firstName}} {{item.lastName}} </span>
</template>
之后:
<template v-slot:item.firstName="props">
<span>{{props.item.prefix}} {{props.item.firstName}} {{props.item.lastName}} </span>
</template>
在 Vuetify 数据 table 中,对于带有插槽模板的 table 列,是否可以使用带有 Camel 大小写的列名,目前仅支持列名,例如模型中的小写字母
这不起作用:
<template v-slot:item.firstName="{item}">
<span>{{item.prefix}} {{item.firstName}} {{item.lastName}} </span>
</template>
这行得通:
<template v-slot:item.firstname="{item}">
<span>{{item.prefix}} {{item.firstname}} {{item.lastname}} </span>
</template>
我的数据模型具有这样的属性。
contactsList: {
{lastName : "Ray",
firstName : "Sam",
prefix : "Dr."},
{lastName : "Bank",
firstName : "Paul",
prefix : "Jr."}}
我玩了一下,我不知道确切的原因,但它似乎与 headers 更相关。只要您将 headers 设为小写,问题就不会出现。您甚至可以将插槽中的每个字母大写
HTML:
<div id="app">
<v-app id="inspire">
<div>
<v-data-table
:headers="headers"
:items="items"
>
<template v-slot:item.firstNaMe="{item}">
<span>test1</span>
</template>
<template v-slot:item.Lastname="{item}">
<span>test2</span>
</template>
</v-data-table>
</div>
</v-app>
</div>
JS:
new Vue({
el: '#app',
vuetify: new Vuetify(),
data () {
return {
items: [
{firstName: 'John', Lastname: 'Doe' },
{firstName: 'Jane', Lastname: 'Doe' }
],
headers: [
{ text: 'first name', value: 'firstname' },
{ text: 'last name', value: 'lastname' }
],
}
},
})
为 v-slot
道具分配传递 props
而不是 { item }
。
这样您就不必担心header.value
;按原样输入密钥名称,而不必考虑字母大小写。 注意:当你想传递一个对象时,你必须设置为小写。
之前(即 OP 问题中的示例):
<template v-slot:item.firstName="{item}">
<span>{{item.prefix}} {{item.firstName}} {{item.lastName}} </span>
</template>
之后:
<template v-slot:item.firstName="props">
<span>{{props.item.prefix}} {{props.item.firstName}} {{props.item.lastName}} </span>
</template>