我有一些自动生成的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()
。
答案 0 :(得分:3)
请参阅此链接。这可能是你寻求的: AngularJS : Insert HTML into view
要在视图中启用html插入,您必须使用$sce.trustAsHtml()
希望这会有所帮助。
答案 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>');