在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML5/ angular 想通過接收到的json字符串生成html頁面,已經(jīng)轉(zhuǎn)義了,但是總

angular 想通過接收到的json字符串生成html頁面,已經(jīng)轉(zhuǎn)義了,但是總是只顯示字符串不顯示標(biāo)簽。

問題描述

angular-material 的項目,想改成通過后臺傳過來的json字符串動態(tài)生成頁面標(biāo)簽,沒做過,就想先試試簡單的

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

之后又改成過的字符串
頁面還是顯示字符串,請問有做過的嗎? 為什么只顯示字符串

回答
編輯回答
巫婆

寫一個安全轉(zhuǎn)化管道類似:

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

/**
 * 安全轉(zhuǎn)化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>
2017年1月6日 16:57
編輯回答
夕顏

應(yīng)該使用element.nativeElement.innerHTML = htmlString

2018年6月9日 02:39
編輯回答
心悲涼

這個是因為安全問題,angular 過濾掉了直接插入html,官方文檔有介紹,需要特殊的api ,參見官網(wǎng)https://angular.cn/guide/secu...

2017年10月21日 16:04