Я изучаю углы с помощью простого приложения для фильтрации таблиц и сталкиваюсь с некоторыми проблемами.
Я пытаюсь реализовать фильтр регулярных выражений в Angular 1.4, чтобы пользователи могли фильтровать определенные входы с несколькими значениями. Кроме того, у меня есть несколько простых, чем исходные данные для других полей. Я попытался выставить фильтр регулярных выражений из предыдущего ответа SO (хотя и для v1.1), но не может применить его к двум входам, которые в настоящее время соответствуют только строке.
Фильтр:
$scope.regex = function(){
return function(input, field, regex) {
var patt = new RegExp(regex);
var out = [];
for (var i = 0; i < input.length; i++){
if(patt.test(input[i][field]))
out.push(input[i]);
}
return out;
};
};
Заранее спасибо.
Пример Plunker здесь с регулярным выражением в контроллере, но не применяется в шаблоне.
Решено на основе ввода от @zeroflagL
appName.filter('regex', function() {
return function(input, field, regex) {
var patt;
var out = [];
if (regex === undefined) {
patt = new RegExp(regex);
}
else {
patt = new RegExp(regex.toLowerCase());
}
if(input === undefined) {
return out;
}
for (var i = 0; i < input.length; i++){
if(patt.test(input[i][field].toLowerCase()))
out.push(input[i]);
}
return out;
};
});
и смог использовать его в моем ng-repeat с:
regex:'fieldname':scopeFilter.propertyForFieldName