Im используя angularJS для создания списка элементов. Теперь я хочу отфильтровать, чтобы одновременно выполнять поиск в нескольких столбцах. Например, если я ищу «Боб», будут показаны все столбцы, содержащие «Боб», а затем я продолжу поиск «Боб 073», все столбцы, содержащие имя «Боб», и номер телефона, который содержит «073», покажут ,Фильтровать несколько столбцов одновременно
Я создал фильтр, который достигает чего-то подобного, но жестко привязан к конкретным столбцам и работает только при поиске обоих столбцов.
app.filter('appFilter', function() {
return function (data, search) {
if (!search) {
return data;
} else {
var term = search;
var termsArray = term.split(' ');
return data.filter(function(item){
return item.name.indexOf(termsArray[0]) > -1 && item.phone.indexOf(termsArray[1]) > -1;
});
}
}
});
<input type="search" ng-model="search">
<div ng-repeat="item in items | appFilter:search)">
{{item.name}}, {{item.phone}}
</div>
Надеюсь, вы понимаете, что я имею в виду.
Спасибо.
Может быть, вы должны использовать || вместо && –
, пожалуйста, отправьте пример на список ведьм, в котором вы запускаете 'ng-repeat' с' appFilter'. –
@Alexander Это не работает, оба должны быть истинными, иначе он будет искать только одну из строк. – Inzajt