1

我有一个简单的 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

4

1 回答 1

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'),
于 2013-09-04T19:46:35.690 回答