Ember DS.RecordArray фильтрует элементы
Я получаю все записи в моем вызове модели маршрута, но затем в одном из компонентов я хочу показать только подмножество записей. Я делаю это по телефону models.filter(somefilter)
, Проблема в том, что filter
возвращает Array
не DS.RecordArray
и когда какое-либо действие вызывает удаление модели из магазина, Array
не обновляется, и компонент с этой моделью не удаляется.
Кто-нибудь знает, как создать фильтр, который возвращает DS.RecordArray
или преобразовать существующий массив в DS.RecordArray
,
// маршруты / index.js Route.extend ({ модель () { вернуть this.store.findAll ('user'); } }); //index.hbs {{пользователи некоторых компонентов = модель}} //some-component.js Component.extend ({ FilterUsers: Ember.computed(function() { вернуть this.get('users').filter(...); }) }); //some-component.hbs {{#each FilterUsers as | пользователь | {{user-component user=user}} {{/}} Каждая
1 ответ
filteredUsers: Ember.computed(function() {
return this.get('users').filter(...);
})
Это будет выполнено только один раз. users
свойство изменилось тогда filteredUsers
не будет пересчитан, поэтому он не будет в курсе. В этом случае вам нужно ввести зависимое свойство, чтобы оно пересчитывалось при каждом изменении зависимого элемента.
filteredUsers: Ember.computed('users',function() {
return this.get('users').filter(...);
})