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

所以我有

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/

10-09 07:48