Фильтр угловых регулярных выражений на нескольких входах

0

Я изучаю углы с помощью простого приложения для фильтрации таблиц и сталкиваюсь с некоторыми проблемами.

Я пытаюсь реализовать фильтр регулярных выражений в 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 здесь с регулярным выражением в контроллере, но не применяется в шаблоне.

  • 1
    Если вы хотите использовать свой собственный фильтр, вам следует зарегистрировать его.
  • 0
    Добавлен ответ, основанный на предложении зарегистрироваться в приложении, а не присоединять к области (метод из предыдущего поста SO)

1 ответ

0

Решено на основе ввода от @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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню