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

推薦する

MySQL の主キーがクエリを高速化するために数値を使用するか UUID を使用するかについての簡単な分析

実際の開発では、MySQL の主キーは重複できず、主キーが自動的にインクリメントされることがあります...

Linux で圧縮ファイルの内容を表示する 10 の方法 (要約)

一般的に、アーカイブされたファイルや圧縮されたファイルの内容を表示するには、まず解凍してから表示する...

分散監視システムにおけるZabbixのアクティブ、パッシブ、Web監視のプロセスの詳細な説明

前回の記事では、Zabbix のネットワーク検出機能について学習し、アクションと組み合わせてホストの...

Echarts は 1 つのグラフ内で異なる X 軸を切り替える機能を実装します (サンプル コード)

レンダリング下の画像のような効果を実現したい場合は、読み続けてアニメーション画像に直接進んでください...

Linux の一般的なコマンドとショートカット キーの紹介

目次1 システムの紹介2 システムショートカット3 一般的なシステムコマンド1 システムの紹介 1....

HTML に画像が存在しない場合にデフォルトの画像を表示する方法の例

画像リンク <img src="" /> jsを使用してURLが有効...

MySQLグループリンクの使用に関する詳細な説明

MYSQL におけるグループ化とリンクは、データベースの操作やデータのやり取りで最もよく使用される ...

MySQL PHP 構文の簡単な分析

まずcharAt関数の基本的な構文を見てみましょう文字 = str.charAt(インデックス) c...

純粋なテキストとアイコン付きのボタンを実現するための HTML+CSS

この記事では、いくつかの基本的なページ要素の実装方法をまとめており、後で更新される予定です。まず、私...

Centos7でポートを開く方法

CentOS7 のデフォルトのファイアウォールは iptables ではなく、firewalle で...

HTMLデータ送信投稿_PowerNode Java Academy

HTTP/1.1 プロトコルで指定されている HTTP リクエスト メソッドには、OPTIONS、...

MySQL データベースのステートメント ワイルドカード ファジー クエリの概要

MySQL エラー: パラメータ インデックスが範囲外です (1 > パラメータ数、つまり 0...

Ubuntu Linux に Git と GitHub をインストールして使用する

Git 入門Git は、Linux(R) カーネル開発の管理を支援するために 2005 年に Lin...

手の動きをリアルタイムで監視するための Handtrack.js ライブラリ (推奨)

【はじめに】: Handtrack.jsは、ブラウザ上で直接リアルタイムの手の動きの追跡と検出を実...

Docker mongoDB 4.2.1 をインストールし、Springboot ログを収集する詳細な手順

1: dockerにmongodbをインストールするステップ1: dockerにmongodbをイン...