我试图在 bootstrap-vue 表格中创建一个插槽,以便使用自定义组件呈现任何布尔值。
因此,我有一个简单的表格:
<b-table :items="items" :fields="columns" >
</b-table>
现在,如果我想以特定的方式呈现单个列,我必须使用插槽。
<template v-slot:cell(active)="data" >
<my-component :item="data.item" />
</template>
它能够运作,是因为我知道active
是一个布尔值。
我想将这个行为泛化,但是在模板中我不能使用v-for
,也不能在非模板上使用v-slot:cell(active)
...我的想法是创建一个包含所有布尔字段的数组并对其进行迭代... 但是它不起作用...
就像这样:
<template v-slot:cell(b)="data" v-for="b in booleanFields">
<my-component :item="data.item[b]" />
</template>
<template v-slot:[
cell(${b})]="data" v-for="b in booleanFields">
请注意,在属性名称(等号之前的任何内容)中不能有空格。这个也可以工作:<template v-slot:['cell('+b+')']="data" v-for="b in booleanFields">
(请注意表达式中缺少空格)。 - Troy Morehouse<template v-slot:[`cell(${b})`]="data" v-for="b in booleanFields">
- inki