#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"
на свой собственный класс выделения, если хотите.