1

我在我的 Backbone.Collection 中定义了比较器。

当我将模型添加到该集合时,我应该调用 sort 方法吗?

this.collection.add(this.newModel);
this.collection.sort(); // should I add this line?

根据文档不是,但我的应用程序似乎需要它。任何的想法?


我添加了jsfiddle ..但我还有另一个问题...知道如何解决它吗?

4

2 回答 2

1

不,当您从比较器函数返回对象时使用负号。这是对元素进行排序的另一种方法。

  //Model
     comparator: function(activity){

                var date = new Date(activity.get('created_at'));
                return -date.getTime();

            }

//View
 events : {
        'click .refresh' : 'refresh',
        'click .reverse' : 'reverse'
    },

    refresh : function() {

     this.collection.fetch();
    console.log('refresh', this.collection);
     this.render();

    },

    reverse : function() {

        var $ref = $(".notifyRefresh");

        console.log("you clicked reverse");

        console.log(this.collection, "collection");

        this.collection.sort();
    }
于 2012-07-26T13:46:32.847 回答
1

不需要调用sort(),该comparator()方法用于每个 Collection 插入。

检查jsFiddle 中的工作示例

您的问题应该在其他地方。

于 2012-07-26T14:26:34.107 回答