2012-07-16 56 views
0

我想创建一个可使用集合的属性进行排序的表。 到目前为止,我已经能够使用两个属性对tab表进行排序,但是我想根据sort key属性的值进行排序。 例如,当“task_status =‘开放’”带骨干收集的可排序表

在这里,我有现在的工作

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

在比较器中,有一个“反转”的状态变量,取值为1,负值为1.将其与前一个返回值相乘。在集合上设置状态变量,然后再次排序应该完成任务。