【发布时间】:2016-05-10 22:16:26
【问题描述】:
我想创建一个表格组件,通过colgroup 和col 标签分配样式列,并让使用该组件的人可以覆盖tbody 内容的呈现方式。我在 Vuejs 中使用named slot,但它不起作用(colgroup 和 table body content 插槽似乎无法替换为用户的内容)这里的代码。
HTML
<body>
<div id='app'>
<simple-table>
<colgroup slot='colstyle'>
<col style='background-color: yellow;'>
</colgroup>
<h2 slot='above-table'>
Above Table Content Modified
</h2>
<tbody slot='tbody-content'>
<tr>
<td>override 1</td>
<td>override 2</td>
<td>override 3</td>
<tr>
</tbody>
</simple-table>
</div>
<script id='simple-table' type='x-template'>
<slot name='above-table'>
Default Above Table Content
</slot>
<table>
<slot name='colstyle'>
<colgroup>
<col span='2' style='background-color: red;'>
</colgroup>
</slot>
<thead>
<tr>
<th>First</th>
<th>Second</th>
<th>Third</th>
</tr>
</thead>
<slot name='tbody-content'>
<tbody>
<tr>
<td>xxx</td>
<td>yyy</td>
<td>zzz</td>
</tr>
</tbody>
</slot>
</table>
</script>
</body>
Javascript
Vue.component('simple-table', {
template: '#simple-table'
});
var app = new Vue({
el: "body"
});
有没有更好的解决方案。 提前致谢。
【问题讨论】:
标签: vue.js