如何将骨干集合分类为多个集合进行渲染?

时间:2014-10-05 02:12:06

标签: javascript backbone.js

我希望将事件集合分解为几天。我正在尝试使用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并且分组无效。

1 个答案:

答案 0 :(得分:1)

您需要保持groupBy函数的返回值。目前您正在分组,然后再次使用未分组的集合。 _.groupBy()将返回一个对象,其中包含您按其分组的属性键,然后您可以根据需要使用_.each()进行迭代。这是一个例子http://jsfiddle.net/q36Le6c4/1/