带骨干集合的可排序表

时间:2012-07-16 22:00:07

标签: javascript backbone.js

我想创建一个可以使用集合的属性进行排序的表。 到目前为止,我已经能够使用两个属性使选项卡表可排序,但我希望可以基于排序键属性的值进行排序。 例如,当“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();
        }
    });

这会对集合进行排序,但不会颠倒顺序,或允许我按属性的特定值进行排序。如何修改它?

1 个答案:

答案 0 :(得分:1)

在比较器中,有一个状态变量用于“反向”并使其取值1和负1.将它乘以前一个返回值。在集合上设置状态变量然后再次排序应该可以完成任务。