我有一个angular.js应用程序,其中在表格中显示了一些元素。
在这些元素中,我有一个名称,在某些情况下,我将其更改为添加<b>
和</b>
以使其加粗。但是它显示为字符串而不是HTML代码。
因此,我将<b>
和</b>
之间页面上的所有文本替换为相同的文本,但以粗体显示。
我尝试这样做:
var pattern = new RegExp(nameFilter, "g");
e.name = e.name.replace(pattern, '<span class="highlighted">' + nameFilter + '</span>');
但是它总是像字符串一样显示。
您知道用粗体显示该怎么办吗?
答案 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'注入模块,如插件示例所示。