Table Vue.js 中的内容分布未正确呈现
Table with content distribution in Vue.js not being rendered properly
我正在尝试创建一个几乎只是 table 的组件,并使用 content distribution 在其中添加元素。
但由于某些原因,我的插槽元素在 table 之前呈现,所以我可能做错了什么。
这是根应用模板:
<div id="app">
<my-comp>
<row-comp></row-comp>
<row-comp></row-comp>
</my-comp>
</div>
这些是我的组件声明:
new Vue({
el: '#app',
components: {
'my-comp': {
template: '\
<table> \
<thead> \
<tr> \
<th>header</th> \
</tr> \
</thead> \
<tbody> \
<tr> \
<td>parent row</td> \
<tr> \
<slot></slot> \
</tbody> \
</table>'
},
'row-comp': {
template: '<tr><td>content</td></tr>'
}
}
})
这是 jsfiddle:https://jsfiddle.net/vxc0o3mf/
谢谢。
<table>
不能包含除 <tr>
和其他 table 特定元素以外的任何元素,因此在渲染后您的 <slot>
会立即移出 table.这是一个很难解决的问题,基本上你必须使用具有 is="component"
属性的合法 table 元素来添加组件:
<div id="app">
<table>
<thead is="header-comp"></thead>
<tr is="row-comp"></tr>
</table>
</div>
然后:
new Vue({
el: '#app',
components: {
'row-comp': {
template: '<tr><td>content</td></tr>'
},
'header-comp': {
template:'<thead><tr><th>header</th></tr></thead>'
}
}
})
Fiddle: https://jsfiddle.net/vxc0o3mf/2/
我知道这没有您要找的全部功能,但您不能将 <slot>
与 tables 一起使用 :(
我正在尝试创建一个几乎只是 table 的组件,并使用 content distribution 在其中添加元素。
但由于某些原因,我的插槽元素在 table 之前呈现,所以我可能做错了什么。
这是根应用模板:
<div id="app">
<my-comp>
<row-comp></row-comp>
<row-comp></row-comp>
</my-comp>
</div>
这些是我的组件声明:
new Vue({
el: '#app',
components: {
'my-comp': {
template: '\
<table> \
<thead> \
<tr> \
<th>header</th> \
</tr> \
</thead> \
<tbody> \
<tr> \
<td>parent row</td> \
<tr> \
<slot></slot> \
</tbody> \
</table>'
},
'row-comp': {
template: '<tr><td>content</td></tr>'
}
}
})
这是 jsfiddle:https://jsfiddle.net/vxc0o3mf/
谢谢。
<table>
不能包含除 <tr>
和其他 table 特定元素以外的任何元素,因此在渲染后您的 <slot>
会立即移出 table.这是一个很难解决的问题,基本上你必须使用具有 is="component"
属性的合法 table 元素来添加组件:
<div id="app">
<table>
<thead is="header-comp"></thead>
<tr is="row-comp"></tr>
</table>
</div>
然后:
new Vue({
el: '#app',
components: {
'row-comp': {
template: '<tr><td>content</td></tr>'
},
'header-comp': {
template:'<thead><tr><th>header</th></tr></thead>'
}
}
})
Fiddle: https://jsfiddle.net/vxc0o3mf/2/
我知道这没有您要找的全部功能,但您不能将 <slot>
与 tables 一起使用 :(