Angular 2 html注入输出一个字符串而不是html元素

时间:2017-12-29 12:35:03

标签: angular

我尝试从类中注入html内容,但我得到的结果是字符串而不是html元素,我做错了什么?

角度版本:angular-cli:1.0.0-beta.20-4

html内容:

<div [ngStyle]=getStyles()>{{getData()}}</div>

getData()返回值:

"<span style='color:#5999B6'>this.data</span>"

this.data是一个字符串

2 个答案:

答案 0 :(得分:2)

出于安全原因,Angular不允许在模板中直接注入HTML。你需要清理你的HTML。按照以下网址清理HTML。 https://netbasal.com/angular-2-security-the-domsanitizer-service-2202c83bd90

希望它会有所帮助

答案 1 :(得分:0)

您想使用innerHTML绑定html:

<div [ngStyle]="getStyles()" [innerHTML]="getData()"></div>

要小心,您必须完全控制getData()返回的html,以避免XSS问题。