1

created_atUNIX時間に基づいてモデルがコレクションに追加されるように、次のコードを順番に使用しています。古いものよりも新しいものを優先する必要があります。

comparator: function(a, b) {
    var time_a = a.get('created_at_time');
    var time_b = b.get('created_at_time');

    if(time_a < time_b) return -1;
    else if(time_a > time_b) return 1;
    else return 0; // time_a === time_b
}

何らかの理由で、アイテムが間違った順序で返されます。解決策について何か考えはありますか?Backbone.js を使用しています。

ありがとう。

4

1 に答える 1

4

Backbone.Collection.comparator() ドキュメントから

比較関数は、sortBy (1 つの引数を取る関数を渡す) またはソート (2 つの引数を受け取る比較関数を渡す) として定義できます。

あなたの場合、sortByソリューションを使用する方が良いと思います:

comparator: function( model ) {
  return model.get('created_at_time');
}

の順序が必要な場合は、数値バージョンに を掛けたものを使用して-1ください。

更新しました

とにかく、コードが正常に機能していた場合は、動作している jsFiddelを確認してください。問題は別の場所にある可能性があります。

于 2012-08-17T11:58:12.877 に答える