0

コレクションの属性を使用して並べ替え可能なテーブルを作成したいと思います。これまで、2つの属性を使用してタブテーブルを並べ替え可能にすることができましたが、並べ替えキー属性の値に基づいて並べ替え可能にしたいと考えています。たとえば、「task_status='open'」の場合

ここで私が今働いているもの

var TaskCollection = Backbone.Collection.extend({
        //Model
        model:Task,
        //url
        url:"./api/tasks",

        //construct
        initialize: function() {
            this.sort_key = 'end';
            this.fetch();
        },

        comparator: function(a,b) {
            a = a.get(this.sort_key);
            b = b.get(this.sort_key);
            return a > b ?  1
                 : a < b ? -1
                 :          0;
        },

        sort_by_status: function() {
            this.sort_key = 'task_status';
            this.sort();
        },

        sort_by_task_tag: function() {
            this.sort_key = 'task_group';
            this.sort();
        }
    });

これにより、コレクションが並べ替えられますが、順序が逆になったり、属性の特定の値で並べ替えたりすることはできません。これをどのように変更して機能させることができますか

4

1 に答える 1

1

コンパレータで、「反転」の状態変数を設定し、値1と負の1を取得します。前の戻り値を掛けます。コレクションに状態変数を設定してから再度並べ替えると、処理が完了します。

于 2012-09-11T03:25:32.773 に答える