使用 DomSanitizer 绕过安全性后,安全值必须使用 \[property\]=binding

新手上路,请多包涵
<!--HTML CODE-->
<p #mass_timings></p>

 //Controller code

@ViewChild('mass_timings') mass_timings: ElementRef;
constructor(private domSanitizer:DomSanitizer)
getInnerHTMLValue(){
 this.mass_timings.nativeElement.innerHTML =
   this.domSanitizer.bypassSecurityTrustHtml(this.parishDetail.mass_timings);

}

但是 mass_timings 显示的输出包括文本:-

安全值必须使用 [property]=binding

一开始

如何删除此字符串。

原文由 manish kumar 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 364
2 个回答

正如错误消息所说,需要使用属性绑定添加经过清理的 HTML:

 <p [innerHTML]="massTimingsHtml"></p>

 constructor(private domSanitizer:DomSanitizer) {
  this.massTimingsHtml = this.getInnerHTMLValue();
}
getInnerHTMLValue(){
  return this.domSanitizer.bypassSecurityTrustHtml(this.parishDetail.mass_timings);
}

StackBlitz 示例(基于 Swapnil Patwa 的 Plunker - 请参阅下面的评论)

原文由 Günter Zöchbauer 发布,翻译遵循 CC BY-SA 4.0 许可协议

您需要像这样清理()安全值:

 this.domSanitizer.sanitize(SecurityContext.HTML,this.domSanitizer.bypassSecurityTrustHtml(this.parishDetail.mass_timings));

原文由 Sunil Kumar 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题