javascript - 如何将 Backbone 集合排序为多个集合进行渲染?

标签 javascript backbone.js

我想按天将事件集合分解为多个事件。我正在尝试使用 groupBy 函数,但我无法弄清楚它如何创建不同的集合,以便我可以为其创建具有不同标题的 View 。

这是我的代码

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 但分组不起作用。

最佳答案

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

关于javascript - 如何将 Backbone 集合排序为多个集合进行渲染?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26198985/

相关文章:

javascript - 如何使用康威生命游戏中的边缘值解决此问题?

node.js - 在 Node 上使用 Backbone 和第三方休息服务

javascript - Marionette 路由器未定义

javascript - Backbone.js 继承问题

javascript - 在 BackboneJS 中查看部分

javascript - 如何在 Angular Material 动画之后执行代码

javascript - 如何将变量等同于变量本身?

javascript - 使用javascript访问相同类名的div

javascript - 从当前 url javascript 获取字符串斜杠后的值

Backbone.js 路由路由不区分大小写