我想为带有自定义数据呈现(模板)的 bootstrap-vue 表创建一个父组件。
现在,这有点像这样:
<b-table
:items="result"
:fields="fields"
:current-page="currentPage"
:per-page="perPage">
<template slot="Index" slot-scope="data">
{{ data.index + 1 }}
</template>
<!-- more templates for various columns here -->
</b-table>
<b-pagination
align="center"
:total-rows="result.length"
v-model="currentPage"
:per-page="perPage"
/>
我想将其包装在组件中的原因是因为我多次使用此表格布局,包括分页及其所有属性(如条纹、边框等)。
唯一改变的是列模板。
我知道,Vue 做到这一点的方法是创建一个插槽<slot name="x"></slot>
,并用<template slot="x">...</template>
. 一方面,这与 bootstrap-vue 相吻合,template
另一方面,bootstrap-vue 似乎只能正确地呈现模板,如果它们被放置在b-table
.
基本上,我想要实现的是这样的组件:
<b-table>
<slot name="templates"/>
</b-table>
<b-pagination stuff.../>
并在这样的子组件中使用它:
<TemplateTable>
<template slot="templates">
<template slot="Index" slot-scope="data">
{{ data.index + 1 }}
</template>
<!-- more templates -->
</template>
</TableTemplate>
有没有人做过这样的事情并想出了解决问题的方法?