angular使用innerHTML渲染,解决style样式消失问题

596 阅读1分钟

问题描述: 使用innerHTML渲染新闻详情时,发现style样式消失。

解决办法: 使用bypassSecurityTrustHtml

bypassSecurityTrustHtml(): 是 DomSanitizer 下面的一个方法,通过接收html代码或svg图片,将它们转换为安全的值,防止出现报错。

pipe文件:
import { Pipe, PipeTransform } from "@angular/core";
import { DomSanitizer } from "@angular/platform-browser";
@Pipe({
    name: "html"
})
export class HtmlPipe implements PipeTransform {
    constructor(private sanitizer: DomSanitizer) {
    }
    transform(style) {
        return this.sanitizer.bypassSecurityTrustHtml(style);
    }
}

html文件:
<div [innerHTML]="articleInfo.content | html"></div>

使用bypassSecurityTrustHtml之前:

image.png

使用bypassSecurityTrustHtml之后:

image.png