在 Vue 中具有内容分发的表.js未正确呈现
Table with content distribution in Vue.js not being rendered properly
我正在尝试创建一个几乎只是一个表的组件,并使用内容分发在其中添加元素。
但是由于某种原因,我的插槽元素在桌子之前呈现,所以我可能做错了什么。
下面是根应用模板:
<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>
和其他特定于表的元素之外的任何元素,因此在呈现时,<slot>
会立即移出表。 这是一件很难解决的事情,基本上您必须使用带有 is="component"
属性的合法表元素来添加组件:
<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>'
}
}
})
小提琴:https://jsfiddle.net/vxc0o3mf/2/
我知道这没有您正在寻找的完整功能,但您不能将<slot>
与表格一起使用:(
相关文章:
- 如何创建带有插槽的vue js组件预加载程序
- 引用vue.js中v-for中的上一个值
- 如何访问<插槽>内部v-for(vue.js)
- 调用laravel{{action(Controller@method}}通过传递vue.js数组中的变量
- Vue.js获取组件中的一个元素
- 将自定义脚本加载到Vue.js组件中
- Vue, Webpack, DC.js, and Finally Crossfilter
- Vue.js:手表数组长度
- Vue.js片段实例
- vue-js-单选按钮won't默认情况下使用v-model属性进行检查
- 访问JQuery中的vue-js变量
- 如何在Vue.js中使用列表视图
- Vue.js-插值错误-如何将样式修改为v-bind:style
- 如何从Vue.js中的子组件访问父方法
- Ajax文件上传Vue.js
- Vue.js如何在定义API变量之前实现自定义过滤器
- Vue.js 在方法内失去范围
- Vue,js Vue -router 2组件数据没有更新
- Vue.js vue-html5-editor
- Vue.js (vue-resource)发送HTTP请求的应用结构问题