Этот код для поиска в hasMany children работает как шарм. Но я хочу искать в текущей модели (например, отфильтрованной название магазина: «storeOne»), то есть причина, потому что я хочу искать в текущей модели, а не запрос к this.store и не запрашивать УПУ ...Поиск в текущей модели
var _self = this;
this.store.findAll('store').then(function(stores){
// search
var promises = stores.map(function(store){
return Ember.RSVP.hash({
store: store,
customers: store.get('customers').then(function(customers){
return customers.filter(function(customer){
var regExp = new RegExp(search, 'i');
var retVal = false;
if (customer.get('name') !== undefined) retVal = retVal || customer.get('name').match(regExp);
if (customer.get('surname') !== undefined) retVal = retVal || customer.get('surname').match(regExp);
if (customer.get('age') !== undefined) retVal = retVal || customer.get('age').match(regExp);
return retVal;
});
})
});
});
Ember.RSVP.all(promises).then(function(filteredData){
_self.set('content', filteredData);
});
});
- Вопрос: Как я могу фильтровать поисковые клиенты в текущей модели без использования findAll или запроса API?
UPDATE:
Фикс мой вопрос, фильтровать текущие элементы модели без запроса новые данные из this.store или сервера API.
filtered: Ember.computed.filter('[email protected]', function(store){ var search = this.get('searchString'); if (search !== undefined) { guild.get('customers').then(function(customers) { var regExp = new RegExp(search, 'i'); customers.map(function(customer){ var retVal = false; var name = customer.get('name'); var surname = customer.get('surname'); var age = customer.get('age'); if (name !== undefined) { retVal = retVal || name.match(regExp) !== null; } if (nick !== undefined) { retVal = retVal || surname.match(regExp) !== null; } if (age !== undefined) { retVal = retVal || age.match(regExp) !== null; } customer.set('show', retVal); }); }); } else { guild.get('customers').then(function(customers) { customers.map(function(customer){ customer.set('show', true); }); }); } return store; }).property('[email protected]', 'searchString')
Извините, но вы пропустите .. Все дети в магазине. Я хочу, чтобы дочерний элемент модели фильтра, а не из магазина, api ... – iTux