为什么使用innerHTML不能将String值显示为HTML标记?

时间:2019-02-11 18:40:05

标签: html angular

我将字符串数据从数据库中获取到变量中,我想通过[innerHTML]将其显示为HTML标记,但这是行不通的。 变量显示在字符串而不是HTML标记上。

我尝试与DomSanitizer一起使用,但不起作用:

    article:Article[];
    (article.articlesTitleHtml:SafeHtml;)

在功能中:

this.article.forEach(elementArticle => {
            elementArticle.articlesTitleHtml = this.sanitizer.bypassSecurityTrustHtml(elementArticle.articleTitle)
        });

在HTML页面中:

 <div *ngFor="let item of articles">
            <div id="{{item.articleId}}">
                <h2 class="chart" [innerHTML]="item.articlesTitleHtml"></h2>
            </div>

我的代码:

在类型脚本中:

    articles:Article[];

       ngOnInit() {
            this.apiArticle.getArticleList().subscribe(data=>{
                this.articles=data          
            })

在HTML页面中:

<div *ngFor="let item of articles">
        <div id="{{item.articleId}}">
        <h2 class="chart" [innerHTML]="item.articleTitle"></h2>
                </div>
            </div>

1 个答案:

答案 0 :(得分:0)

应该可以,check here...

如果您可以共享正在处理的数据类型,它将使您更深入地了解应调用的适当DomSanitizer方法

在上面的示例中,我将 bypassSecurityTrustHtml bypassSecurityTrustUrl 都用于需要清理的2种不同类型的字符串