使用Backbone.js我已经设置了一个带比较器功能的集合.这很好地排序模型,但我想颠倒顺序.
如何按降序排序模型而不是升序?
我正在使用Backbone.Collection来查看可排序列表中的数据.我已经找到了部分,点击某些dom元素设置我的Collection上的属性,以确定我想要排序的字段,以及应该进行排序的方向.然后应在集合上触发排序,之后视图将更新.
最终我希望能够对数字字段以及字符串进行排序.某些字符串应按字母顺序排序,其他字符串按自定义预定义顺序
我在反向排序字符串上发现了以下帖子: 使用backbone.js以相反的顺序对字符串进行排序
我试图将它与比较器函数和以下自定义属性结合起来:
var ApplicationCollection = Backbone.Collection.extend({
model: ApplicationModel,
url: 'rest/applications',
// sorting
statusOrder: ['new', 'to_pay', 'payed', 'ready'],
sortField: 'submission_timestamp',
sortOrder: 'asc',
sortBy: function() {
console.log('ApplicationCollection.sortBy', this, arguments);
console.log('this.comparator', this.comparator);
var models = _.sortBy(this.models, this.comparator);
if (this.sortOrder != 'asc') {
models.reverse();
}
return models;
},
comparator: function(application) {
console.log('ApplicationCollection.comparator', this, arguments);
switch(this.sortField) {
case 'status':
return _.indexOf(this.statusOrder, application.get(this.sortField));
break;
case 'submission_timestamp':
default:
return application.get(this.sortField)
break;
}
}
});
Run Code Online (Sandbox Code Playgroud)
var ApplicationModel …Run Code Online (Sandbox Code Playgroud)