EmberJS模型订购

时间:2015-09-25 00:40:21

标签: javascript ember.js

鉴于

model() {
  return this.store.findAll('foos')
},

在Ember路线中,为了显示目的,我如何反转记录的顺序?

即。在我的模板中我有:

{{#each model as |foo|}}

他们目前正按照我想要的完全相反的顺序出现。

2 个答案:

答案 0 :(得分:2)

有几种方法可以做到这一点。一种是在控制器上创建一个计算属性。

sortedModel: Ember.computed('model.[]', function() {
  return this.get('model').toArray().sort( (a, b) => {
    return whateverSortYouWantToDo
  })
})

然后在你的模板中

{{#each sortedModel as |foo|}}

答案 1 :(得分:2)

您可以使用arrayProxy实现在控制器中定义的sortableMixin,并在模板中使用此属性。例如:

sortedContent: function(){
    var self = this;
    return Ember.ArrayProxy.createWithMixins(Ember.SortableMixin, {
        sortProperties: ['modelPropertyYouWantToSort'],
        sortAscending: true,
        content: self.get('model')
    });
}.property('model')

模板:

{{#each sortedContent as |foo|}}