我希望将事件集合分解为几天。我正在尝试使用groupBy函数,但我无法弄清楚如何创建不同的集合,我可以创建具有不同标题的视图。
这是我的代码
var eventCollectionView = Backbone.View.extend({
initialize: function() {
this.listenTo(this.collection, "reset", this.render);
},
tagName: "div",
className: "events",
render: function(){
_.groupBy(this.collection.models, function(model){
return model.get('date')
});
this.collection.each(function(eventItem) {
var view = new eventView({model: eventItem});
this.$el.append(view.render().el);
}, this);//defines scope
return this;
}
});
我也尝试过this.collection.groupBy并且分组无效。
答案 0 :(得分:1)
您需要保持groupBy函数的返回值。目前您正在分组,然后再次使用未分组的集合。 _.groupBy()
将返回一个对象,其中包含您按其分组的属性键,然后您可以根据需要使用_.each()
进行迭代。这是一个例子http://jsfiddle.net/q36Le6c4/1/