迭代一个ember模型查询

时间:2017-01-18 08:49:15

标签: ember.js ember-model

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

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

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

我想知道我能用它做的一切。是否有结果集合的api文档?

谢谢!

2 个答案:

答案 0 :(得分:8)

来自ember guides

以下方法,将返回Promise,它将被解析为Record或RecordArray。

store.findAll()会返回DS.PromiseArray DS.RecordArray。{。} store.findRecord会返回一个将使用record解决的承诺 store.query()以与findAll相同的方式返回DS.PromiseArray

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

store.peekAll直接返回DS.RecordArray store.peekRecord direclty返回记录

  

重要的是要注意DS.RecordArray不是JavaScript   array,它是一个实现Ember.Enumerable的对象。这是   重要的是,例如,如果您想要通过检索记录   索引,[]表示法不起作用 - 你必须使用   而是objectAt(index)

来自Ember.Enumerable,大部分时间我碰巧使用以下内容,
forEach迭代
map转换为新数组
filterBy findBy基于单一财产检查进行过滤 toArray转换为普通原生数组

答案 1 :(得分:-3)

你根本没有谷歌?

findAll将返回一个Promise,它将解析为RecordArray。 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/