ember.js - Emberjs 排序记录

标签 ember.js ember-data

我想按日期降序对获得的记录进行排序。

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

我试过 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"
  }
}

最佳答案

返回 this.store.findAll('mymodel').sortBy('date') 不起作用,因为 findAll 返回一个 PromiseArray!

如果你在 model 钩子(Hook)中这样做,你应该这样做:

return this.store.findAll('mymodel').then(results => results.sortBy('date'));

如果您在计算属性中执行此操作,您可能希望将其重新封装在 PromiseArray 中:

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

关于ember.js - Emberjs 排序记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35614317/

相关文章:

ember.js - Ember 构建错误 : Assertion Failed: [BUG] seen set should be available

node.js - 使用来自 emberJs 的参数过滤器进行快速路由

ember.js - 在 Ember Data 中,如何通过 id 设置关系字段而不向服务器发送 null?

javascript - Handlebars 预编译模板返回未定义的值

docker - EmberCLI运行时配置

unit-testing - Ember CLI 测试复杂的模型关系

javascript - 找不到变量 : DS in Ember CLI

Ember.js 变形器 - 它们去哪里?

javascript - 带有 Websockets/socket.io 的 Ember.js。用于加载实时数据的 Ember API 调用/推荐结构

Javascript 框架 : Knockout, 主干、嵌入……