ホームページ > ウェブフロントエンド > jsチュートリアル > Angular4でCSSスタイルを表示するサンプルコード

Angular4でCSSスタイルを表示するサンプルコード

小云云
リリース: 2017-12-28 09:08:11
オリジナル
1600 人が閲覧しました

この記事では、Angular 4 でコンテンツを表示する方法の CSS スタイルに関する関連情報を主に紹介します。この記事では、サンプル コードを通じて詳細に紹介しています。この記事は、学習や仕事に必要なすべての人の学習に役立ちます。以下に従ってください、一緒に学びましょう。皆さんのお役に立てれば幸いです。

まえがき

この記事の本文を始める前に、まず angular2 でのページ上のタグ付きテキストの出力に関する関連内容を見てみましょう。XSS の問題を体系的に防ぐために、Angular はすべての値を信頼できないものとして扱います。デフォルト。 。 属性 (Property)、DOM 要素の属性 (Attribte)、CSS クラス バインディング、または補間式を介してテンプレートから DOM に値が挿入されると、Angular はこれらの値をサニタイズします (信頼できない値はエンコードされます)。 。

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 のみを表示し、フォントは 30 ピクセルではありません。つまり、CSS スタイルは効果がありません。

解決策

パイプをカスタマイズしてコンテンツを変換します。以下のコードを見てください。

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>
ログイン後にコピー

にパイプ名を追加します。これにより、CSSスタイルのコンテンツを表示できます。

関連する推奨事項:

完全な Angular4 FormText コンポーネントの実装方法の詳細な説明

Angular4 フォーム応答関数のサンプル分析

Angular4 でのプロジェクトの準備と環境構築操作

以上がAngular4でCSSスタイルを表示するサンプルコードの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
css
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート