如何使用tagName:'table'将一个部分添加到牵线木偶集合视图中?

时间:2014-06-09 14:12:01

标签: javascript backbone.js marionette

我有一个看起来像这样的集合视图:

var PersonView = Marionette.ItemView.extend({
        tagName: 'tr',
        template: function (model) {
            return _.template("<td><%= data.firstName %></td><td><%= data.lastName %></td>", {
                firstName: model.firstName,
                lastName: model.lastName
            }, { variable: 'data' });
        }
    }),
    PersonCollectionView = Marionette.CollectionView.extend({
        tagName: 'table',
        itemView: PersonView
    });

它工作正常,但我无法找出在表格中添加<thead>部分的最佳方法。我想到将tagName: 'table'更改为tagName: 'tbody'并在显示集合视图的布局中添加thead部分,但它看起来不是一个非常干净的方法。实际上,如果我在其他地方使用我的集合视图,我将不得不在另一个布局中重现thead部分...建议的方法是什么?

P.S见https://github.com/shawninder/table-collection-views的工作实例。您会注意到该表没有<thead>部分,这正是我试图解决的问题。

更新:根据已接受的答案修复this commit

1 个答案:

答案 0 :(得分:1)

您可能需要使用CompositeView代替。使用CompositeView,您可以提供一个模板,该模板会添加thead并使用ItemViewContainer呈现您的收藏集。阅读doc,我相信你会找到解决方案。