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 の完全版

推薦する

Linux で AutoFs マウント サービスをインストールするチュートリアル

Samba サービスでも NFS サービスでも、サーバーの起動時にリモート共有リソースが自動的にマ...

JavaScript でドラッグ可能なプログレスバーを実装する

この記事では、ドラッグ可能なプログレスバーを実装するためのJavaScriptの具体的なコードを参考...

MySQL 5.7.19 winx64 無料インストールバージョン設定チュートリアル

mysql-5.7.19-winx64インストールフリー版の設定方法、参考までに具体的な内容は以下の...

無効な Nginx クロスドメイン設定 Access-Control-Allow-Origin の解決策

nginx バージョン 1.11.3次の構成を使用すると、検証は無効になり、クロスドメインの問題が依...

W3C チュートリアル (9): W3C XPath アクティビティ

XPath は、XML ドキュメントの一部を選択するための言語です。 XPath は、XSLT、XQ...

MySQLの構文、特殊記号、正規表現の詳細な説明

Mysql でよく使用される表示コマンド1. 現在のデータベース サーバー内のデータベースの一覧を表...

MySQL 8.0.16 圧縮版のダウンロードと Win10 システムへのインストール チュートリアル

公式サイトからダウンロード: https://www.mysql.com MySQLの公式サイトにア...

Linux parted ディスク パーティション実装手順の分析

fdisk と比較すると、parted はあまり使用されず、主に 2T を超えるパーティションに使用...

RHCEはApacheをインストールし、ブラウザでIPにアクセスします

1. at は、5 時間後にルート ディレクトリの at_test ファイルに「これは at タスク...

Dockerコンテナを終了した後も実行を継続する方法

現象:イメージを実行します (例: ubuntu14.04)。 docker run -it --r...

Unicode の一般的な文字の概要

初期のコンピューターのほとんどは ASCII 文字しか使用できませんでしたが、その後、主要な西洋のア...

Web デザイン TabIndex 要素

TabIndex は、Tab キーを押して、定義された TabIndex 要素を順番に取得し、各要素...

JS配列の次元削減のいくつかの方法の詳細な説明

2次元配列の次元削減配列インスタンスメソッド concat と ES6 スプレッド演算子を使用した次...

レスポンシブレイアウトの概要(推奨)

レスポンシブレイアウト開発の基礎知識この章は主に以下の部分に分かれています• レスポンシブデザインを...

MySQL でテーブル メタデータ ロックを待機する理由と方法

MySQL が alter table などの DDL 操作を実行すると、テーブル メタデータ ロッ...