Как отфильтровать ng-таблицы с несколькими значениями в массиве.
В настоящее время я реализую angular-selectize.js ( https://github.com/machineboy2045/angular-selectize), чтобы добавить поле поиска, которое будет принимать несколько значений, и отфильтровать все ячейки в базе данных ng на основе этих значений без указания какие столбцы фильтровать. Аналогично результатам создания поля поиска с вводом и filter:search
на ng-repeat
но фильтрация с несколькими значениями вместо.
Плункер: http://plnkr.co/edit/701op5FQ0PRJ5FOlF5Mq?p=preview
2 ответа
Решение
Я создал собственный фильтр, и он работал. Плункер: http://plnkr.co/edit/701op5FQ0PRJ5FOlF5Mq?p=preview
.filter('filterSelectize', function($filter){
return function(cars, multiArray) {
if(multiArray.length >= 1){
var filteredCars = cars;
for(i=0; i < multiArray.length; i++){
var filteredCars = $filter('filter')(filteredCars, multiArray[i]);
}
return filteredCars;
}
else {
return cars;
}
}
})
Вы также можете пойти "официальным" путем ngTable с ключом фильтра $:
function applyGlobalSearch(){
var term = self.globalSearchTerm;
if (self.isInvertedSearch){
term = "!" + term;
}
self.tableParams.filter({ $: term });
}