Angular dom 消毒工作不正常

Angular dom sanitize not working correctly

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

SafeValue must use [property]=binding: My text (see 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>

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

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

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

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

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