Emberjs排序记录

Gja*_*jaa 3 ember.js ember-data

我想按日期降序排序我得到的记录.

//model definition
export default DS.Model.extend({
   name: DS.attr('string'),
   date: DS.attr('number')
}
Run Code Online (Sandbox Code Playgroud)

我试过return this.store.findAll('mymodel').sortBy('date')但没有成功.我使用的是2.3.0版本.

//the data
"mymodel" : {
  "-KBJDc1Ccg2kny1Vzn5B" : {
    "date" : 1456350696971,
    "name" : "Jhon"
  },
  "-KBJH_JN6G-AiAVsRfCS" : {
    "date" : 1456349784907,
    "name" : "Peter"
  },
  "-KBK6ZaiI-6o6KPocrSJ" : {
    "date" : 1456348227848,
    "name" : "Paul"
  }
}
Run Code Online (Sandbox Code Playgroud)

Lux*_*Lux 5

返回this.store.findAll('mymodel').sortBy('date')无法工作,因为findAll返回PromiseArray!

如果你在一个model钩子里做,你应该做:

return this.store.findAll('mymodel').then(results => results.sortBy('date'));
Run Code Online (Sandbox Code Playgroud)

如果你在计算属性中执行它,你可能想在PromiseArray中重新封装它:

list: Ember.computed({
  get() {
    let promise = this.store.findAll('mymodel').then(results => results.sortBy('date'));
    return DS.PromiseArray.create({promise});
  }
}
Run Code Online (Sandbox Code Playgroud)