相关疑难解决方法(0)

使用Backbone.js反向排序顺序

使用Backbone.js我已经设置了一个带比较器功能的集合.这很好地排序模型,但我想颠倒顺序.

如何按降序排序模型而不是升序?

javascript backbone.js

89
推荐指数
8
解决办法
5万
查看次数

对骨干集合进行排序

所需的功能

我正在使用Backbone.Collection来查看可排序列表中的数据.我已经找到了部分,点击某些dom元素设置我的Collection上的属性,以确定我想要排序的字段,以及应该进行排序的方向.然后应在集合上触发排序,之后视图将更新.

最终我希望能够对数字字段以及字符串进行排序.某些字符串应按字母顺序排序,其他字符串按自定义预定义顺序

我目前的做法

我在反向排序字符串上发现了以下帖子: 使用backbone.js以相反的顺序对字符串进行排序

我试图将它与比较器函数和以下自定义属性结合起来:

  1. "状态"字段中可能值的自定义排序顺序
  2. 哪个字段应该用于排序
  3. 排序的方向

到目前为止我收集的Collection和Model类:

收藏

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)

javascript sorting backbone.js

3
推荐指数
1
解决办法
9606
查看次数

标签 统计

backbone.js ×2

javascript ×2

sorting ×1