在angularjs应用程序中以粗体更改文本

时间:2018-08-22 08:46:47

标签: javascript angularjs

我有一个angular.js应用程序,其中在表格中显示了一些元素。 在这些元素中,我有一个名称,在某些情况下,我将其更改为添加<b></b>以使其加粗。但是它显示为字符串而不是HTML代码。

因此,我将<b></b>之间页面上的所有文本替换为相同的文本,但以粗体显示。

我尝试这样做:

var pattern = new RegExp(nameFilter, "g");
e.name = e.name.replace(pattern, '<span class="highlighted">' + nameFilter + '</span>');

但是它总是像字符串一样显示。

您知道用粗体显示该怎么办吗?

1 个答案:

答案 0 :(得分:1)

在这里,我根据您在评论部分中的要求,为下面的 $ sce.trustAsHtml 示例场景添加代码。另外,请查看this plunker中的示例。

模板:

<tr ng-repeat="emp in empList">
    <td><span ng-bind-html="emp.name | trustAsHtml"></span></td>
    <td>{{emp.dept}}</td>
</tr>

控制器:

app.controller('MainCtrl', function($scope) {
  $scope.empList = [
    { name: '<b>Test 1</b>', dept: 'Finance'},
    { name: '<b>Test 2</b>', dept: 'Development'},
    { name: '<b>Test 3</b>', dept: 'Testing'},
    { name: '<b>Test 4</b>', dept: 'DBA'}
  ];
});

app.filter('trustAsHtml', ['$sce', function($sce){
  return $sce.trustAsHtml;
}]);

注意: 不要忘记将'ngSanitize'注入模块,如插件示例所示。