迭代 ember 模型查询

Iterate over an ember model query

this.store.findAll('game').then(function(results){
   // RUN SOME OPERATION ON THEM
})

我想知道如何使用 results 变量。我明白我能做到

results.get('firstObject') // returns the first object.

我想知道我还能用它做什么。 results 集合是否有任何 api 文档?

谢谢!

findAll 将 return 一个将解析为 RecordArray 的 Promise。 RecordArray 是一个 ArrayProxy。

http://emberjs.com/api/classes/Ember.ArrayProxy.html

这就是您需要的一切。

如果你 google "ember findall" 你也会找到 "Ember.js - Models: Finding Records - Guides" 的文档。

https://guides.emberjs.com/v2.5.0/models/finding-records/

来自 ember guides

以下方法,将return Promise,解析为Record或RecordArray。

store.findAll() return 满足 DS.RecordArray.
DS.PromiseArray store.findRecord return 是一个将通过 record 解决的承诺。
store.query() returns a DS.PromiseArray 与 findAll 相同。

以下两个是同步方法,它将检索商店中可用的内容和 returns 记录本身。它不会请求服务器获取数据。

store.peekAll直接return一个DS.RecordArray.
store.peekRecord 直接 return 条记录

It's important to note that DS.RecordArray is not a JavaScript array, it's an object that implements Ember.Enumerable. This is important because, for example, if you want to retrieve records by index, the [] notation will not work--you'll have to use objectAt(index) instead.

Ember.Enumerable开始,大部分时间我碰巧使用了下面的,
forEach 迭代
map 转换为新数组
filterBy findBy 用于过滤基于单个 属性 校验
toArray 转换为普通原生数组