angular 想通过接收到的json字符串生成html页面,已经转义了,但是总是只显示字符串不显示标签。

问题描述

angular-material 的项目,想改成通过后台传过来的json字符串动态生成页面标签,没做过,就想先试试简单的

htmlString = "<div>1111111</div>"
页面直接 {{ htmlString }}
页面显示字符串

之后又改成过的字符串
页面还是显示字符串,请问有做过的吗? 为什么只显示字符串

阅读 5k
3 个回答

写一个安全转化管道类似:

import { Pipe, PipeTransform } from '@angular/core'
import { DomSanitizer } from '@angular/platform-browser'

/**
 * 安全转化innerhtml
 */
@Pipe({ name: 'safeInnerHtml' })
export class SafeInnerHtmlPipe implements PipeTransform {
    constructor(private sanitized: DomSanitizer) { }
    transform(value) {
        return this.sanitized.bypassSecurityTrustHtml(value);
    }
}

模版直接:

<div [innerHTML]="xxx | safeInnerHtml"></div>

应该使用element.nativeElement.innerHTML = htmlString

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