Angular UI-утилиты фильтр выделения

#javascript #angularjs

#javascript #angularjs

Вопрос:

У меня есть древовидная структура, в которой я предоставил средство поиска.Теперь я хочу выделить средство поиска по слову.Чтобы получить функциональность выделения слов, я использовал ui-утилиты angular, в которых есть фильтр выделения.Но фильтр выделения выделяет только одно слово.

Например, моя строка — это «I am Test one», и если я выполню поиск «Я«, то он выделит ее. но теперь я хочу выделить «Я тестирую», в это время выделение перестает работать. Я хочу функцию выделения нескольких слов.

Кто-нибудь сталкивался с такой ситуацией? Заранее спасибо.

Ответ №1:

Вы могли бы создать свой собственный, filter основанный на выделении Angular UI, который разбивает поисковый запрос на пробелы. Например,

 YOUR_MODULE.filter('hightlightWords', function () {
  return function (text, search) {
    if (text amp;amp; (search || angular.isNumber(search))) {
      text = text.toString();
      search = search.toString();

      angular.forEach(search.split(/s /), function(search_part) {
        text = text.replace(new RegExp(search_part, 'gi'), '<span class="ui-match">$amp;</span>');
      });
    }
    return text;
  };
});
  

Вы также можете изменить "ui-match" на свой собственный класс выделения, если хотите.