1

我使用 angular dom sanitizer 从文本区域获取 html。它在渲染整个项目后第一次完美运行,但在重新访问组件后第二次我收到此消息:

SafeValue 必须使用 [property]=binding: My text(参见http://g.co/ng/security#xss)。

我已经使用 inner-html 属性通过属性绑定传递了内容

const desc=this.sanitizer.bypassSecurityTrustHtml(this.ticket.description);
this.ticket.description = desc;
<p class="desc" [innerHTML]="ticket.description"></p>

我期待我的纯文本,但我得到了上面描述的输出。

4

2 回答 2

1

您可以像下面这样直接绑定:

<p class="desc" [innerHTML]="sanitizer.bypassSecurityTrustStyle(ticket.description)"></p>
于 2019-02-11T14:44:49.333 回答
0

html中的绑定方法会导致很多歧义,如下所示。该方法不断被html击中,在您的情况下,在ngOninit中它工作正常,这意味着您的逻辑工作正常,现在在ngonchanges中编写相同的逻辑(也将其保留在ngonint中)它会正常工作

<p class="desc" [innerHTML]="sanitizer.bypassSecurityTrustStyle(ticket.description)"></p>

于 2019-11-25T06:45:59.497 回答