Angularコンポーネント投影の詳細な説明

Angularコンポーネント投影の詳細な説明

概要

実行時にコンポーネント テンプレートの内容を動的に変更します。ルーティングほど複雑ではなく、ビジネス ロジックのない単なる HTML です。

ngContent ディレクティブは、親コンポーネントのテンプレートの任意のフラグメントを子コンポーネントに投影します。

1. 簡単な例

1.サブコンポーネントの<ng-content>ディレクティブを使用して投影ポイントをマークします。

<div class="wrapper">
  <h2>私は子コンポーネントです</h2>
  <div>このdivは子コンポーネントで定義されています</div>
  <コンテンツ></コンテンツ> 
</div>

2. 親コンポーネントで、子コンポーネントに投影する投影ポイントのHTMLフラグメントを子コンポーネントのタグに記述します。

<div class="wrapper">
  <h2>私は親コンポーネントです</h2>
  <div>このdivは親コンポーネントで定義されています</div>
  <アプリの子2>
    <div>この div は子コンポーネントに投影される親コンポーネントです</div>
  </app-child2>
</div>

効果:

サブコンポーネントとスタイル:

.ラッパー{
    背景: ライトグリーン;
}

親コンポーネントとスタイル:

.ラッパー{
    背景: シアン;
} 

2. 複数の <ng-content> 投影ポイント

サブコンポーネント:

<div class="wrapper">
  <h2>私は子コンポーネントです</h2>
  <ng-content セレクター=".header"></ng-content>
  <div>このdivは子コンポーネントで定義されています</div>
  <ng-content セレクター=".footer"></ng-content> 
</div>

親コンポーネント:

<div class="wrapper">
  <h2>私は親コンポーネントです</h2>
  <div>このdivは親コンポーネントで定義されています</div>
  <アプリの子2>
    <div class="header">これはページ ヘッダーです。この div は子コンポーネントに投影される親コンポーネントです。タイトルは {{title} です。}</div>
    <div class="footer">これはフッターです。この div は子コンポーネントに投影される親コンポーネントです</div>
  </app-child2>
</div> 

ヘッダーとフッターは子コンポーネントに投影され、タイトルも投影されます。

親コンポーネント テンプレートの投影されたコンテンツ内の補間式は、コンテンツが子コンポーネントに投影されるにもかかわらず、親コンポーネントのプロパティのみをバインドできます。

3. Angular属性バインディングによるHTMLの挿入

親コンポーネント テンプレートに次の行を追加します。

<div [innerHTML]="divContent"></div>

親コンポーネントに divContent 属性を追加すると、コンテンツは HTML フラグメントになります。

divContent="<div>プロパティ バインディング innerHTML</div>";

効果

4. ngContentディレクティブと属性バインディングinnerHTMLの比較

[innerHTML] はブラウザ固有の API です。

ngContent ディレクティブはプラットフォームに依存しません。複数の投影ポイントをバインドできます。

ngContentディレクティブを優先する

上記は、Angularコンポーネントの投影についての詳細な説明です。Angularコンポーネントの投影の詳細については、123WORDPRESS.COMの他の関連記事に注目してください。

以下もご興味があるかもしれません:
  • angular4 ng-content の隠しコンテンツに関する簡単な説明
  • コンポーネントにコンテンツを埋め込むための Angular2 ng-content ディレクティブについての簡単な説明
  • DevUI で独自の Angular コンポーネント ライブラリを構築する方法
  • Angularデータバインディングとその実装の詳細な説明
  • React、Angular、Vueの3つの主要なフロントエンド技術の詳細説明
  • Angular のパフォーマンス最適化: サードパーティ コンポーネントと遅延読み込みテクノロジー
  • Angularフレームワークのビュー抽象定義の詳細な説明
  • AngularJSにおける括弧の役割の詳細な説明

<<:  PHP スケジュールバックアップ MySQL および mysqldump 構文パラメータの詳細

>>:  一般的な Linux ツール vi/vim の完全版

推薦する

Reactの状態の理解についての簡単な分析

複雑なコンポーネント (クラス コンポーネント) と単純なコンポーネント (関数コンポーネント) を...

Linux システムの .bash_profile ファイルの詳細な説明

目次1. 環境変数$PATH: 2. 環境変数を変更します。 3. bash_profileの目的要...

HTML DOM入門_PowerNode Javaアカデミー

DOMとは何ですか? JavaScript を使用すると、HTML ドキュメント全体を再構築できます...

ノード スキャフォールディングを使用してトークン検証を実装するサーバーを構築する方法

コンテンツスキャフォールディングを使用してノードプロジェクトを素早く構築するデータベースとやり取りす...

jQueryフレームワークは、要素の表示と非表示の3つのアニメーションメソッドを実装しています。

目次1. デフォルトで表示と非表示を切り替える2. スライドして表示と非表示を切り替える3. フェー...

HTMLフォーム要素の詳しい解説(パート2)

HTML 入力属性値属性value 属性は、入力フィールドの初期値を指定します。 <フォーム...

vue-video-player でのブレークポイント再開の実装

最近のプロジェクトでは、ブレークポイントからビデオの再生を再開する機能を実装する必要がありました。こ...

MySQL パフォーマンス最適化のための魔法のツール、Explain の基本的な使用分析

導入MySQL には、SELECT ステートメントを分析し、開発者が最適化できるように SELECT...

Vue+Openlayerはグラフィックスのドラッグと回転変形効果を実現します

目次序文関連資料成果を達成する実装手順序文Openlayer には独自の拡張プラグイン ol-ext...

Reactスロットの使い方

目次必要コアアイデアReactでスロットを実装する2つの方法必要コンポーネントを自分で書きました。コ...

HTML 5 スタイルシートのリセット

この CSS リセットは、Eric Meyers の CSS リセットに基づいて変更されており、特に...

Tomcat マルチポートドメイン名アクセスと gzip 圧縮方式を有効にする構成

1. デフォルトのポート8080に加えて、ドメイン名のアクセスとserver.xmlのオープンにポー...

MySQL インデックスの一般的な問題の概要

Q1: データベースにはどのようなインデックスがありますか?メリットとデメリットは何ですか? 1. ...

MySQLシリーズ15 MySQL共通設定とパフォーマンスストレステスト

1. 一般的なMySQLの設定以下のすべての構成パラメータは、32G のメモリを搭載したサーバーに基...

Nginx 構成 SSL および WSS 手順の紹介

目次序文1. Nginxのインストール1. Nginxをダウンロードする2. 依存関係をインストール...