EmberJS - 以相反顺序或按日期顺序显示模型

时间:2013-09-04 19:39:11

标签: ember.js ember-data

我有一个简单的Ember应用程序,它可以得到一系列模型:

App.IndexRoute = Ember.Route.extend({
  model: function() {
    return this.store.find("swap");                                                                                                                     
  }
});

然后我在视图中输出它们:

{{#each model}}
    output stuff here
{{/each}}

一切正常。我还有一个表单,可以让人们添加这个模型的新实例,它工作正常,并将新记录添加到底部。

但是,我想反向做。据我所知,我有两个选择:

  • 反向输出数组,当添加新数组时,将其添加到顶部,而不是底部
  • 每个模型都有一个带有日期的createdAt属性,因此按createdAt属性按降序排列每个模型

我认为第二种选择更有意义,但我不知道该怎么办。

目前我只有一个App.IndexRoute然后我有一个App.ApplicationController我已经添加了一些自定义属性。我假设我需要添加另一个属性或方法来从商店获取数据并按createdAt订购?

1 个答案:

答案 0 :(得分:5)

杰克,您需要使用sortAscendingsortProperties

App.SomeController = Ember.ArrayController.extend({
    sortProperties: ['order'],
    sortAscending: true
});

修改 请注意,如果您为ID列使用了一个数字,并且想要按其排序,那么您需要将其显式转换为数字:

/**
 * Explicitly forces the model ID to be viewed as an integer, allowing correct numeric     sorting
 */
order: function() {
    return parseInt(this.get('id'), 10);
}.property('id'),