欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Angular 4中如何顯示內(nèi)容的CSS樣式示例代碼

 更新時間:2017年11月06日 10:56:29   作者:1CSH1  
這篇文章主要給大家介紹了關(guān)于Angular 4中如何顯示內(nèi)容的CSS樣式的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。

前言

在開始本文的正文之前,我們先來看一下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í)價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關(guān)文章

最新評論