前言
眾所周知在Web前端開發(fā)中,我們經(jīng)常會(huì)遇見需要?jiǎng)討B(tài)的將一些來自后端或者是動(dòng)態(tài)拼接的HTML字符串綁定到頁面DOM顯示,特別是在內(nèi)容管理系統(tǒng)(CMS:是Content Management System的縮寫),這樣的需求,更是遍地皆是。但是最近在Angular4綁定html內(nèi)容的時(shí)候出現(xiàn)了警告,通過查找相關(guān)資料終于解決了,下面給同樣遇到這個(gè)問題的朋友們分享下,話不多說了,來一起看看詳細(xì)的介紹吧。
綁定html內(nèi)容
如果用正常的方法去綁定的話,可能會(huì)出再這種警告
<div [innerHTML]="Catcha" ></div> --------------------------------------- WARNING: sanitizing HTML stripped some content (see http://g.co/ng/security#xss).
而且頁面上也顯示不出東西來。
在網(wǎng)上找了一些,說要寫指令對(duì)其進(jìn)行轉(zhuǎn),好麻煩,從官網(wǎng)也找到一個(gè)種辦法。
bypassSecurityTrustHtml 用這個(gè)來進(jìn)行安裝轉(zhuǎn)換。
在返回的結(jié)果對(duì)內(nèi)容,或內(nèi)容字段進(jìn)行轉(zhuǎn)換,當(dāng)然要使用 bypassSecurityTrustHtml 的話,還是要依賴注入 DomSanitizer 服務(wù),
import { DomSanitizer } from '@angular/platform-browser'; export class myPage1{ constructor(private sanitizer: DomSanitizer) { } onInit():void{ this.Catcha = this.sanitizer.bypassSecurityTrustHtml('要進(jìn)行轉(zhuǎn)換的內(nèi)容'); // 這里比如返回的一個(gè)html內(nèi)容,或是其它如一張 svg 的圖等,用上面代碼轉(zhuǎn)一下就可以了,就不會(huì)那那個(gè)錯(cuò)誤了。 } }
總結(jié)
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com