我希望你能帮助我,经过几个小时的搜索,我的问题仍未得到答复。
我正在使用Backbone.js和Epoxy.js视图进行数据绑定,并将集合绑定到我的视图以显示每个条目:
var list = new (Backbone.Collection.extend({
model: Model
}))();
var View = Backbone.Epoxy.View.extend({
el: $el,
collection: list,
itemView: ItemView,
bindings: { 'tbody': 'collection:$collection' }
});
new View();
Model是一个基本的Backbone.Model,ItemView是一个代表我的集合的单个条目的视图:
var Model = Backbone.Model.extend({
defaults: {
foo: 'foo',
bar: 'bar'
}
});
var ItemView = Backbone.Epoxy.View.extend({
tagName: "tr",
el: '<tr>'+[
'<td class="list-foo"></td>',
'<td class="list-bar"></td>'
].join('')+'</tr>',
bindings: {
'.list-foo': 'text:foo',
'.list-bar': 'text:bar',
}
});
现在这就像一个魅力,我的收藏中的每个模型都将完美地显示在我的表格中,对我的列表的任何更新都将更新我的观点。但是:
有没有办法对我的收藏进行分组,并更新我的观点?
Collection.groupBy()
会返回包含我的分组数据的数组,但我如何处理Epoxy.Views
?
我能想到的唯一但丑陋的解决方案是使用新模型(分组数据)填充另一个集合,替换view.collection
,view.ItemView
并更新绑定,但没有其他,更清洁的方式来做到这一点?
提前致谢!