首頁 > web前端 > js教程 > 主體

Angular4中顯示CSS樣式的範例程式碼

小云云
發布: 2017-12-28 09:08:11
原創
1551 人瀏覽過

本文主要給大家介紹了關於Angular 4中如何顯示內容的CSS樣式的相關資料,文中透過範例程式碼介紹的非常詳細,對大家的學習或工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。希望能幫助大家。

前言

在開始本文的正文之前,我們先來看看angular2中將標籤的文字輸出在頁面上的相關內容,為了系統性的防範XSS問題,Angular默認把所有值都當作不可信任的。 當值從模板中以屬性(Property)、DOM元素屬性(Attribte)、CSS類別綁定或插值表達式等途徑插入到DOM中的時候, Angular將對這些值進行無害化處理(Sanitize),對不可信的值進行編碼。

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標籤但不辨識標籤中的屬性值

#發現問題

大家都知道Angular 中有innerHTML 屬性來設定要顯示的內容,但如果內容包含CSS 樣式,無法顯示樣式的效果。

例如:

public content: string = "<p style=&#39;font-size:30px&#39;>Hello Angular</p>";

<p [innerHTML]="content"></p>
登入後複製

只會顯示 Hello World ,字體不會是 30px,也就是 CSS 樣式沒有效果。

解決方案

自訂一個 Pipe 來轉換內容。看下面程式碼。

寫一個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 樣式。

相關建議:

詳解一個完整的Angular4 FormText 元件的實作方法

Angular4表單回應功能範例分析

Angular4中專案的準備與環境建置操作

以上是Angular4中顯示CSS樣式的範例程式碼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
css
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板