我有一个组件需要在邮政编码中查询家庭服务。这是为了响应用户输入邮政编码而填充选择下拉列表。
所以我有
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。
答案 0 :(得分:1)
在余烬数据中,relationship return Promises。所以在你的情况下你可能会改变你的第一个选项,如下所示,
store.findRecord('postcode', postcode, {include: 'homes'})
.then( function (area) {
area.get('homes').then((result)=>{ component.set( 'homes',result);
});
});
请记住,您的第二个选项是错误的,因为findRecord返回Prmise,因此您将Prmoise而不是结果设置为homes
。