我想创建一个可以使用集合的属性进行排序的表。 到目前为止,我已经能够使用两个属性使选项卡表可排序,但我希望可以基于排序键属性的值进行排序。 例如,当“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();
}
});
这会对集合进行排序,但不会颠倒顺序,或允许我按属性的特定值进行排序。如何修改它?
答案 0 :(得分:1)
在比较器中,有一个状态变量用于“反向”并使其取值1和负1.将它乘以前一个返回值。在集合上设置状态变量然后再次排序应该可以完成任务。