Emberjs:UPDATED findQuery的响应必须是一个数组,而不是未定义的

时间:2014-04-16 19:21:43

标签: ember.js

我有一个谷歌自动完成搜索框,不断更新搜索。 下面的代码适用于两个搜索,然后我得到findQuery的响应必须是一个数组,而不是未定义。

为每次新搜索卸载商店地址和酒店数据可能不是一件好事。但我现在想不出任何其他解决方案。

Lost.HotelRoute = Ember.Route.extend({
queryParams: {
    currentPlace: {
        refreshModel: true
    }
},
model: function (params) {
    var self = this;
    var hotelController = this.controllerFor('hotel');
    var currentPlace = hotelController.get('currentPlace');
    self.store.unloadAll('address');
    self.store.unloadAll('hotel');
    return this.store.find('address', {
        locality: currentPlace
    }).then(function (response) {
        return self.store.all('hotel');
    });
},
deactivate: function () {
    this.controllerFor('city').set('routeNeedsAutoSearch', false);
}

});

1 个答案:

答案 0 :(得分:0)

我改变了方法。 我想这是一个很好的方法来为每次搜索卸载数据。 更好的方法是使用this.store.filter 所以我现在正在做这样的事情。

我可能不对我正在学习,如果有人建议更好,我会选择适当的答案

return this.store.find('address', {
    locality: currentPlace
}).then(function (response) {
        response.forEach(function (item) {
           addressId = item.get('id');
           arr = self.store.filter('hotel', function (hotel) {
           return hotel.get('address.id') == addressId;
        });
    });
});