2012-07-16 108 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.將其與前一個返回值相乘。在集合上設置狀態變量,然後再次排序應該完成任務。