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システムでノードプロセスを実行しているが、プロセスを強制終了できない問題を解決します

まず、Linux システムで実行されているノード プロセスはプロセスを強制終了できないことを紹介しま...

CSSコンテンツ属性の具体的な使用法

コンテンツ属性は通常、::before および ::after 疑似要素で使用され、疑似要素のコンテ...

Tomcat イメージをインストールして Docker に Web プロジェクトをデプロイする方法を簡単に説明します。

1. Tomcatをインストールする1. Docker HubでTomcatイメージを見つける d...

WeChat アプレット学習 WXS 使用方法チュートリアル

wxsとは何ですか? wxs (WeiXin Script) は、小規模プログラム用のスクリプト言語...

Dockerプライベート倉庫の構築と利用の詳細説明

イメージは hub.docker.com に保存できますが、ネットワーク速度が比較的遅いです。内部環...

React Contextの理解と応用についてお話ししましょう

目次序文React Context の初見コンテキストの使い方コンテキストを直接取得できるいくつかの...

HTMLの基礎を徹底解説(第1部)

1. WEBを理解するWeb ページは主にテキスト、画像、ハイパーリンクなどの要素で構成されていま...

MySQL 8.0.22 winx64 のインストールと設定方法のグラフィックチュートリアル

MySQL-8.0.22-winx64のデータベースインストールチュートリアルは参考になります。具体...

MySQLクエリ条件のnot inとinの違いと理由

まずSQLを書く SELECT DISTINCT from_id タラから cod.from_id ...

CentOS インストール mysql5.7 詳細チュートリアル

この記事では、参考までに、centOSにmysql5.7をインストールする詳細な手順を紹介します。具...

MySQLの最適化の詳細な分析とパフォーマンス

導入データベースを使用したことがある人なら、機能面での like 記号と = 記号の類似点と相違点を...

Javascript デザインパターン プロトタイプ モードの詳細

目次1. プロトタイプモード例1例2例3 2. オブザーバーパターン1. プロトタイプモードプロトタ...

MySQL の厄介な Aborted 警告をケーススタディで分析する

この記事では主に、MySQL の Aborted アラームに関する関連コンテンツを紹介し、参考と学習...

Vueはドラッグアンドドロップまたはクリックで写真をアップロードする機能を実装しています

この記事では、ドラッグアンドドロップやクリックによる画像のアップロードを実現するためのVueの具体的...