将HTML字符串视为HTML

时间:2017-05-22 10:10:34

标签: javascript html angularjs dom highlight

我有一些自动生成的HTML代码,突出显示我的angularJS应用程序中的一些文本。生成html代码的行是这一行:

var replaced = original.replace(regEx, '<span style="background-color: red;">' + replacing + '</span>');
line[key + 'HL'] = replaced;

但是在模板上写这个

<div><p>{{line.codeHL ? line.codeHL : line.code}} {{line.price}}</p></div>

显示了这一点:

<span style="background-color: red;">GD5AU211</span> 102€

如何在字符串中强制评估html代码?

另外,我只是说我不能使用document.getElementById()

3 个答案:

答案 0 :(得分:3)

请参阅此链接。这可能是你寻求的: AngularJS : Insert HTML into view

要在视图中启用html插入,您必须使用$sce.trustAsHtml()

将html定义为可信数据

希望这会有所帮助。

答案 1 :(得分:0)

如果您使用角度4,请使用innerHTML

<div><p>

   <div [innerHTML]="line.codeHL ? line.codeHL : line.code">
    </div> {{line.price}}

</p></div>

如果您使用的是角度1,请使用ng-bing-html

<div><p>
       <div ng-bind-html="line.codeHL ? line.codeHL : line.code | cust">
        </div> {{line.price}}
</p></div>

现在像这样创建一个cust过滤器

.filter('cust',function($sce){
  return function(html){
    return $sce.trustAsHtml(html)
  }
})

答案 2 :(得分:0)

在html之前添加<xmp>标记,必须以文本形式显示。

var replaced = original.replace(regEx, '<span style="background-color: red;"><xmp>' + replacing + '</xmp></span>');