Angular 4中如何顯示內(nèi)容的CSS樣式示例代碼
前言
在開始本文的正文之前,我們先來看一下angular2中將帶標(biāo)簽的文本輸出在頁面上的相關(guān)內(nèi)容,為了系統(tǒng)性的防范XSS問題,Angular默認(rèn)把所有值都當(dāng)做不可信任的。 當(dāng)值從模板中以屬性(Property)、DOM元素屬性(Attribte)、CSS類綁定或插值表達(dá)式等途徑插入到DOM中的時候, Angular將對這些值進(jìn)行無害化處理(Sanitize),對不可信的值進(jìn)行編碼。
h3>Binding innerHTML</h3> <p>Bound value:</p> <p class="e2e-inner-html-interpolated">{{htmlSnippet}}</p> <p>Result of binding to innerHTML:</p> <p class="e2e-inner-html-bound" [innerHTML]="htmlSnippet"></p>
[innerHTML]="htmlSnippet"
這個屬性可以識別 HTML標(biāo)簽 但不識別標(biāo)簽中的屬性值
發(fā)現(xiàn)問題
大家都知道Angular 中有 innerHTML 屬性來設(shè)置要顯示的內(nèi)容,但是如果內(nèi)容包含 CSS 樣式,無法顯示樣式的效果。
比如:
public content: string = "<div style='font-size:30px'>Hello Angular</div>"; <p [innerHTML]="content"></p>
只會顯示 Hello World ,字體不會是 30px,也就是 CSS 樣式?jīng)]有效果。
解決方案
自定義一個 Pipe 來對內(nèi)容做轉(zhuǎn)換??聪旅娲a。
寫一個 HtmlPipe 類
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); } }
在需要的模塊里面引入管道 HtmlPipe
@NgModule({ declarations: [ HtmlPipe ] })
在 innerHtml 中增加管道名字
<p [innerHTML]="content | html"></p>
這樣就可以顯示 content 的 CSS 樣式。
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
- AngularJS使用ng-class動態(tài)增減class樣式的方法示例
- 詳解AngularJS ng-class樣式切換
- AngularJS表格樣式簡單設(shè)置方法示例
- AngularJs定制樣式插入到ueditor中的問題小結(jié)
- Angular5給組件本身的標(biāo)簽添加樣式class的方法
- Angular使用動態(tài)加載組件方法實(shí)現(xiàn)Dialog的示例
- angularJS實(shí)現(xiàn)動態(tài)添加,刪除div方法
- AngularJS動態(tài)添加數(shù)據(jù)并刪除的實(shí)例
- AngularJS實(shí)現(xiàn)動態(tài)切換樣式的方法分析
相關(guān)文章
深究AngularJS中ng-drag、ng-drop的用法
本篇文章主要介紹了深究AngularJS中ng-drag、ng-drop的用法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-06-06Angular項(xiàng)目里ngsw-config.json文件作用詳解
這篇文章主要為大家介紹了Angular項(xiàng)目里ngsw-config.json文件作用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11Angularjs的Controller間通信機(jī)制實(shí)例分析
這篇文章主要介紹了Angularjs的Controller間通信機(jī)制,結(jié)合實(shí)例形式分析了Controller通信機(jī)制的原理、實(shí)現(xiàn)技巧與相關(guān)操作技巧,需要的朋友可以參考下2016-11-11Angular統(tǒng)一注入器unified injector簡化依賴關(guān)系管理
這篇文章主要為大家介紹了Angular統(tǒng)一注入器unified injector簡化依賴關(guān)系管理的使用方法實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-10-10Angular2學(xué)習(xí)筆記之?dāng)?shù)據(jù)綁定的示例代碼
本篇文章主要介紹了Angular2學(xué)習(xí)筆記之?dāng)?shù)據(jù)綁定的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-01-01Angular實(shí)現(xiàn)購物車計(jì)算示例代碼
本篇文章主要介紹了Angular實(shí)現(xiàn)購物車計(jì)算示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-02-02Angular懶加載機(jī)制刷新后無法回退的快速解決方法
使用oclazyload懶加載angular的模塊,刷新頁面后,單擊回退按鈕無法返回上一個頁面.怎么回事呢?下面小編給大家?guī)砹薬ngular懶加載機(jī)制刷新后無法回退的快速解決方法,非常不錯,感興趣的朋友參考下2016-08-08Angularjs之ngModel中的值驗(yàn)證綁定方法
今天小編就為大家分享一篇Angularjs之ngModel中的值驗(yàn)證綁定方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-09-09簡介AngularJS中使用factory和service的方法
這篇文章主要簡單介紹了AngularJS中使用factory和service的方法,主要針對自定義工廠和服務(wù)的創(chuàng)建來講,需要的朋友可以參考下2015-06-06AngularJS實(shí)用基礎(chǔ)知識_入門必備篇(推薦)
下面小編就為大家?guī)硪黄狝ngularJS實(shí)用基礎(chǔ)知識_入門必備篇(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-07-07