我使用这个解决方案动态地在vuejs组件中设置表单元格:
http://forum.vuejs.org/topic/526/repeating-table-row-with-slot
这仅适用于Vue.js v1.0.10,但不适用于当前版本v1.0.26。
Jsfiddle:https://jsfiddle.net/peL8fuz3/
我正在尝试获取以下标记( item对象应该在组件中可用)
<div id="vue">
<basic-table>
<table-cell>{{ item.id }}</table-cell>
<table-cell>{{ item.title }}</table-cell>
</basic-table>
</div>Vue.js组件(更多在小提琴上)
Vue.component('basic-table', {
template: '<table><tbody><tr v-for="item in collection" v-slot></tr></tbody></table>',
data: function () {
return {
collection: [
{id: 1, title: 'Vue'},
{id: 2, title: 'Vue 2'},
{id: 3, title: 'Vue 3'},
{id: 4, title: 'Vue 4'},
]
}
}
});有人知道怎么解决这个问题吗?
编辑还没有找到一个可行的解决方案--还在搜索。
发布于 2016-08-19 23:11:57
这很难找出到底出了什么问题,但是从1.0.18版本开始,代码就坏了。我无法深入挖掘以消除确切的提交,但是进行了几次优化,这些优化可能会影响$context._content呈现。
解决方案
但是,您可以通过更改
var raw = host.$options._content; 至
var raw = host._context._directives.filter(function (value) {
return !(value.Component === undefined);
})[0].el;该更改与v1.0.26兼容。您可以找到固定代码这里。
免责声明
我未能找到使用公共API实现相同结果的方法。因此,该解决方案也依赖于非公共API,因此可能会在今后的发布中中断。
发布于 2016-08-18 10:31:46
亚伦,我的回答可能对你的问题不满意,但你为什么不把它简化成下面的代码,但你必须使用指令和所有这些东西?
我仍然在弄清楚为什么您的解决方案正在使用以前的版本,而不是当前的版本。:D
new Vue({
el: '#vue',
data: {
items: [{
id: 1,
title: 'Vue'
}, {
id: 2,
title: 'Vue 2'
}, {
id: 3,
title: 'Vue 3'
}, {
id: 4,
title: 'Vue 4'
}, ]
}
});<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/1.0.26/vue.min.js"></script>
<table border="1" class="table" id="vue">
<tbody>
<tr v-for="item in items">
<td>{{item.id}}</td>
<td>{{item.title}}</td>
</tr>
</tbody>
</table>
https://stackoverflow.com/questions/38970548
复制相似问题