Как я могу отфильтровать коллекцию с помощью Backbone Paginator, включая элементы, отсутствующие на текущей странице?
Я использую Backbone Paginator, и когда я фильтрую коллекцию, она фильтрует только текущую страницу. Как я могу отфильтровать всю коллекцию?
В настоящее время я работаю с кнопкой фильтра в Marionette. Когда пользователь вводит значение для фильтрации, я устанавливаю значение в качестве члена в моем объекте Application. Затем я вызываю fetch для коллекции. Эти элементы находятся в таблице, представленной в составном представлении. Я переопределяю метод фильтра и возвращаю 0, если поле данных в модели не соответствует критериям в значении фильтра:
filter: function(child, index, collection) {
var name = child.get('full_name').toLowerCase();
if (App.nameFilter.length) {
if (name.indexOf(App.nameFilter.toLowerCase()) == -1) {
return 0;
}
}
return 1;
}
Если дочерняя модель отсутствует на текущей странице, она не будет выбрана. Или есть лучший способ сделать это?
1 ответ
Я не знаю, если вы найдете решение для вашей проблемы, но фильтрация в марионетке не влияет на коллекцию, управляемую Paginator, это причина, которая вызывает ошибку на нумерации страниц.
Я тоже работаю над подобными вещами и думаю, что единственный способ - управлять фильтрацией прямо в коллекции.