一尘不染

在AngularJS中突出显示过滤结果

angularjs

我像电话教程一样在angularJS中使用ng-
repeat和filter,但我想在页面中突出显示搜索结果。使用基本的jQuery,我只需在输入的键上解析页面,但是我试图以有角度的方式进行操作。有任何想法吗

我的代码:

<input id="search" type="text" placeholder="Recherche DCI" ng-model="search_query" autofocus>
<tr ng-repeat="dci in dcis | filter:search_query">
            <td class='marque'>{{dci.marque}} ®</td>
            <td class="dci">{{dci.dci}}</td>
 </tr>

阅读 219

收藏
2020-07-04

共1个答案

一尘不染

对于AngularJS v1.2 +

HTML:

<span ng-bind-html="highlight(textToSearchThrough, searchText)"></span>

JS:

$scope.highlight = function(text, search) {
    if (!search) {
        return $sce.trustAsHtml(text);
    }
    return $sce.trustAsHtml(text.replace(new RegExp(search, 'gi'), '<span class="highlightedText">$&</span>'));
};

CSS:

.highlightedText {
    background: yellow;
}
2020-07-04