例如,如果我有一个人和地址模型,并且一个地址有很多人而一个人属于一个地址,那么我如何编排搜索以查找地址城市字段为“曼彻斯特”的每个人;例如。
在过去几周学习Ember之后,我无法绞尽脑汁想知道这是如何运作的......
答案 0 :(得分:1)
Ember.RSVP.filter在基于某些异步属性过滤记录列表时非常有用,它等待已过滤的数组承诺和回调承诺都被解析并返回另一个带有结果的promise:
Ember.RSVP.filter(store.findAll('person', function (person) {
return person.get('address').then(function (address) {
return address.get('city') === 'Manchester';
});
}).then(function (filteredPersons) {
// filteredPersons are the persons who live on Manchester
});
如果您已拥有person
数组,则可以使用Ember.RSVP.resolve将其传递给Ember.RSVP.filter
,这样您就不必再次拨打后端电话了:
Ember.RSVP.filter(Ember.RSVP.resolve(persons), function (person) {
...
}).then(function (filteredPersons) {
});