在Angular 9中,[innerHTML]属性在没有对值进行过滤的情况下可能无法正常工作,即使值是普通字符串。这是由于安全性改进导致的。
要解决这个问题,可以使用Angular的内置DomSanitizer服务来解决。DomSanitizer可以帮助我们信任并且安全地渲染HTML。
以下是一个示例解决方法:
import { DomSanitizer, SafeHtml } from '@angular/platform-browser';
constructor(private sanitizer: DomSanitizer) { }
getSafeHtml(html: string): SafeHtml {
return this.sanitizer.bypassSecurityTrustHtml(html);
}
在这个示例中,yourHtmlString是你想要显示的原始HTML字符串。
通过使用DomSanitizer服务,我们可以信任并安全地渲染HTML,即使它没有经过过滤。
请注意,使用[innerHTML]属性时应该谨慎,确保你信任并且知道要渲染的HTML内容。