配列にある単語に印を付けることができます。配列から単語を強調表示する
$scope.arrayFilter=["mom","is","beautifull"];
しかし、表示された順番で単語がある場合は、私のためにのみ動作します。言葉の順序にかかわらず、一致するとマークされていることを望みます。また、配列に新しい単語を追加すると、それにもマークを付ける必要があります。ここで
https://jsfiddle.net/1x7zy4La/
<li ng-repeat="item in data ">
<span ng-bind-html="item.title | highlight:arrayFilter"></span>
</li>
$scope.arrayFilter=["mom","is","beautifull"];
$scope.data = [{
title: "mom is beautifull"
}, {
title: "my mom is great"
}, {
title: "I hate the matematics"
}];
});
app.filter('highlight', function($sce) {
return function(text, arrayFilter) {
var stringToDisplay = '';
angular.forEach(arrayFilter,function(key,value){
if(text.includes(key)){
stringToDisplay = stringToDisplay.concat(key).concat(" ");
}
})
stringToDisplay = stringToDisplay.substring(0, stringToDisplay.length - 1);
return $sce.trustAsHtml(text.replace(new RegExp(stringToDisplay, 'gi'), '<span class="highlightedText">$&</span>'));
}
});
おかげであなた!!!!私はそれを何か説明できますか? "$ sce.trustAsHtml" – yavg
これでどうぞお手伝いできますか? https://stackoverflow.com/questions/45929547/highlight-the-text-of-a-span?noredirect=1#comment78817832_45929547 – yavg