我有一个谷歌自动完成搜索框,不断更新搜索。 下面的代码适用于两个搜索,然后我得到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);
}
});
答案 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;
});
});
});