我有一个需要在邮政编码中查询房屋服务的组件。这是为了响应用户输入邮政编码来填充选择下拉列表。
所以我有
export default Ember.Component.extend({
store: Ember.inject.service(),
actions: {
findHome: function(){
// component declared for promise
var component = this;
var postcode = this.get( 'area.postcode');
var store = this.get('store');
// EITHER...
var x = store.findRecord('postcode', postcode, {include: 'homes'})
.then( function (area) {
component.set( 'homes', area.homes);
});
// OR...
var x = store.findRecord('postcode', postcode, {include: 'homes'})
component.set( 'homes', x.homes );
}
}
});
无论如何,由于两种解决方案都没有适当的
homes
数组,因此它不起作用。我应该怎么做?我可以看到Mirage响应findRecord返回了数据(邮政编码和包含的房屋)。
最佳答案
在ember-data中,relationship return Promises。因此,根据您的情况,您可能会像下面这样稍微更改您的第一个选择,
store.findRecord('postcode', postcode, {include: 'homes'})
.then( function (area) {
area.get('homes').then((result)=>{ component.set( 'homes',result);
});
});
请记住,您的第二个选项是错误的,因为findRecord返回Prmise,所以您将Prmoise而不是result设置为
homes
。关于javascript - Ember findRecord并包括,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41557472/