2015-07-09 2 views
0

Допустим, у меня есть такой маршрут какПри использовании метода Ember sortBy с несколькими аргументами, как изменить один аргумент, а не другой?

/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

Я не пробовал, но я верю, что вы могли бы сделать это:

// 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

Смежные вопросы