当使用带有多个参数的Ember sortBy方法时,如何反转一个参数而不反转另一个参数?

时间:2015-07-09 15:39:14

标签: ember.js

假设我有一条路线,例如

/routes/pets.js

export default Ember.Route.extend({
  model: function() {
    return this.store.findAll('pet').then(function(pets) {
      return pets.sortBy('name', 'ownerName');
    });
  }
});

将按名称排序,然后按orderName排序。但是如果我想按一个属性升序和一个降序排序呢?

很容易做一个降序,如下:

return pets.sortBy('name').reverse();

但是我看不出如何处理2个或更多的参数?

1 个答案:

答案 0 :(得分:1)

我没有尝试过,但我相信你可以这样做:

// route
export default Ember.Route.extend({
  model: function() {
    return this.store.findAll('pet');
  }
});

// controller
export default Ember.Controller.extend({
  customSorting: ['name', 'ownerName:desc'],
  sortedPets: Ember.computed.sort('model', 'customSorting')
});

否则,只需实现自定义排序功能,如文档中所述:http://emberjs.com/api/classes/Ember.computed.html#method_sort