使用angularjs和$ sce突出显示

时间:2014-08-12 11:14:48

标签: javascript angularjs highlighting

请参阅以下图片:

enter image description here

很好。

现在,请看下面的图片:

enter image description here

这对我不好。

我需要在声明后首先突出显示:

陈述:as

然后是以下声明:

陈述:dad

他们都突出了。怎么做?

js code:

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

                return trustAsHtml;
            };

cshtml代码:

<td ng-hide="$index == tableService.choiseDeleteRecord ||$index==tableService.choiseUpdateRecord">
                <span ng-bind-html="tableService.highlight(newsCategory.NameFa, pagerService.search)"> {{newsCategory.NameFa}}</span>
            </td>
            <td class="direction-left" ng-hide="$index == tableService.choiseDeleteRecord ||$index==tableService.choiseUpdateRecord">
                <span ng-bind-html="tableService.highlight(newsCategory.NameFa, pagerService.search)"> {{newsCategory.NameEn}}</span>
            </td>

1 个答案:

答案 0 :(得分:0)

我尝试过,但我成功了。但我的代码可能不是最佳的。

如果你有更好的方法,请分享

enter image description here

js code:

  tableService.highlight = function (text, search) {
        if (!search) {
            return $sce.trustAsHtml(text);
        }
        var splitSearch = search.split(' ');
        $.each(splitSearch, function (index, value) {
            text = replaceAll(value, '#####$&~~~~~', text);
        });
        text = replaceAll('#####', '<span class="highlightedText">', text);
        text = replaceAll('~~~~~', '</span>', text);
        var trustAsHtml = $sce.trustAsHtml(text);
        return trustAsHtml;
    };