0

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