1

Backbone.Collection で Comparator を定義しました。

そのコレクションにモデルを追加するとき、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 に答える