骨干中的比较器在添加新模型时需要排序调用吗?

时间:2012-07-26 13:43:29

标签: javascript backbone.js

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

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

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

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


我添加了jsfiddle ..但我还有另外一个问题......任何想法如何修复它?

2 个答案:

答案 0 :(得分: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();
    }

答案 1 :(得分:1)

不需要调用sort(),每个集合插入都使用comparator()方法。

检查working example in jsFiddle

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