Javascript 余烬findRecord和include

Javascript 余烬findRecord和include,javascript,node.js,ember.js,Javascript,Node.js,Ember.js,我有一个组件需要查询邮政编码中的家庭服务。这是为了填充选择下拉列表,以响应用户输入的邮政编码 所以我有 导出默认Ember.Component.extend({ 存储区:Ember.inject.service(), 行动:{ findHome:function(){ //声明承诺的组件 var分量=此; var postcode=this.get('area.postcode'); var store=this.get('store'); //要么。。。 var x=store.findRec

我有一个组件需要查询邮政编码中的家庭服务。这是为了填充选择下拉列表,以响应用户输入的邮政编码

所以我有

导出默认Ember.Component.extend({
存储区:Ember.inject.service(),
行动:{
findHome:function(){
//声明承诺的组件
var分量=此;
var postcode=this.get('area.postcode');
var store=this.get('store');
//要么。。。
var x=store.findRecord('postcode',postcode,{include:'homes'})
.然后(功能(区域){
组件集('homes',area.homes);
});
//或者。。。
var x=store.findRecord('postcode',postcode,{include:'homes'})
组件集('homes',x.homes);
}
}
});
无论如何,这两种解决方案都不起作用,因为它们都没有合适的
家庭阵列。我应该怎么做

我可以看到海市蜃楼返回数据(邮政编码和包含的房屋)以响应findRecord。

在余烬数据中。所以在你的情况下,你可能会改变你的第一个选择,如下所示

store.findRecord('postcode', postcode, {include: 'homes'})
    .then( function (area) {                
        area.get('homes').then((result)=>{  component.set( 'homes',result);
        });
    });

请记住,您的第二个选项是错误的,因为返回Prmise,所以您将Prmoise而不是result设置为
HOME

长镜头。。。但是除了已经定义的默认存储之外,您是否还命名了一个服务“存储”?我看不到任何已经定义的默认存储,因此在上面的组件中命名了一个。关于Ember,有一些“神奇”的东西是显式注入的,就像有显式索引路由一样。你可以在任何地方叫this.store或this.get('store')。我会尝试重新命名你的服务,看看情况是否有所不同。就像一个男人说的,这是一个很长的机会。。。只有当你使用余烬数据或其他东西时,商店才可能存在。。。但你应该调查一下存储不是神奇地注入组件;它被分为路由和控制器。酷。我只是想确保它不会被定义两次如果它不能回答您的问题,那么您可能需要包括您的模型代码以及您确认幻影响应的方式。非常感谢,我认为第二个选择是错误的,但我不明白为什么第一个没有返回我需要的对象。我没有太多使用余烬数据。请阅读指南来回答这个问题。在本文中,在处理人际关系时,重要的是要记住他们会回报承诺。我得到了承诺,但我对如何使用承诺的理解是错误的:/