Detaillierte Erklärung der Angular-Komponentenprojektion

Detaillierte Erklärung der Angular-Komponentenprojektion

Überblick

Ändern Sie den Inhalt von Komponentenvorlagen dynamisch zur Laufzeit. Es ist nicht so kompliziert wie Routing, es ist nur ein Stück HTML ohne Geschäftslogik.

Die ngContent-Direktive projiziert ein beliebiges Fragment der Vorlage der übergeordneten Komponente auf eine untergeordnete Komponente.

1. Einfaches Beispiel

1. Verwenden Sie die Direktive <ng-content> in der Unterkomponente, um den Projektionspunkt zu markieren

<div Klasse="Wrapper">
  <h2>Ich bin eine untergeordnete Komponente</h2>
  <div>Dieses Div ist in der untergeordneten Komponente definiert</div>
  <ng-Inhalt></ng-Inhalt> 
</div>

2. Schreiben Sie in der übergeordneten Komponente das HTML-Fragment des Projektionspunkts, der auf die untergeordnete Komponente projiziert werden soll, in das Tag der untergeordneten Komponente

<div Klasse="Wrapper">
  <h2>Ich bin die übergeordnete Komponente</h2>
  <div>Dieses Div ist in der übergeordneten Komponente definiert</div>
  <app-child2>
    <div>Dieses Div ist die übergeordnete Komponente, die in die untergeordnete Komponente projiziert wird</div>
  </app-child2>
</div>

Wirkung:

Unterkomponenten und Stile:

.Verpackung{
    Hintergrund: hellgrün;
}

Übergeordnete Komponente plus Stil:

.Verpackung{
    Hintergrund: Cyan;
} 

2. Mehrere <ng-content>-Projektionspunkte

Unterkomponenten:

<div Klasse="Wrapper">
  <h2>Ich bin eine untergeordnete Komponente</h2>
  <ng-content selector=".header"></ng-content>
  <div>Dieses Div ist in der untergeordneten Komponente definiert</div>
  <ng-content selector=".footer"></ng-content> 
</div>

Übergeordnete Komponente:

<div Klasse="Wrapper">
  <h2>Ich bin die übergeordnete Komponente</h2>
  <div>Dieses Div ist in der übergeordneten Komponente definiert</div>
  <app-child2>
    <div class="header">Dies ist der Seitenkopf. Dieses Div ist die übergeordnete Komponente, die in die untergeordnete Komponente projiziert wird. Der Titel lautet {{title}}</div>
    <div class="footer">Dies ist die Fußzeile. Dieses Div ist die übergeordnete Komponente, die in die untergeordnete Komponente projiziert wird</div>
  </app-child2>
</div> 

Kopf- und Fußzeile werden in die untergeordnete Komponente projiziert, und der Titel wird ebenfalls projiziert.

Interpolationsausdrücke in projiziertem Inhalt in der Vorlage der übergeordneten Komponente können nur Eigenschaften in der übergeordneten Komponente binden, obwohl der Inhalt in die untergeordnete Komponente projiziert wird.

3. HTML durch Angular-Attributbindung einfügen

Fügen Sie der Vorlage der übergeordneten Komponente eine Zeile hinzu:

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

Fügen Sie der übergeordneten Komponente ein divContent-Attribut hinzu, und der Inhalt ist ein HTML-Fragment.

divContent="<div>Eigenschaftsbindung innerHTML</div>";

Wirkung

4. Vergleich der ngContent-Direktive und der Attributbindung innerHTML

[innerHTML] ist eine browserspezifische API.

Die ngContent-Direktive ist plattformunabhängig. Es können mehrere Projektionspunkte gebunden werden.

Geben Sie ngContent-Direktiven Priorität

Oben finden Sie eine ausführliche Erläuterung der Projektion von Angular-Komponenten. Weitere Informationen zur Projektion von Angular-Komponenten finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM!

Das könnte Sie auch interessieren:
  • Eine kurze Diskussion über versteckte Inhalte in Angular4 ng-content
  • Eine kurze Diskussion über die Angular2 ng-content-Direktive zum Einbetten von Inhalten in Komponenten
  • So erstellen Sie Ihre eigene Angular-Komponentenbibliothek mit DevUI
  • Detaillierte Erläuterung der Angular-Datenbindung und ihrer Implementierung
  • Detaillierte Erklärung der drei wichtigsten Frontend-Technologien React, Angular und Vue
  • Angular-Leistungsoptimierung: Komponenten von Drittanbietern und Lazy-Loading-Technologie
  • Detaillierte Erklärung der Ansichtszusammenfassungsdefinition im Angular-Framework
  • Detaillierte Erklärung der Rolle von Klammern in AngularJS

<<:  PHP geplante Backup MySQL und mysqldump Syntax-Parameter detailliert

>>:  Die Vollversion des gängigen Linux-Tools vi/vim

Artikel empfehlen

Analyse der vernachlässigten DOCTYPE-Beschreibung

Doctype ist einer davon: <!DOCTYPE HTML PUBLIC ...

So optimieren Sie die MySQL-Leistung durch langsame MySQL-Abfragen

Mit zunehmender Anzahl von Besuchen steigt der Dr...

Erläuterung des React+TypeScript-Projektaufbaufalls

Das Erstellen eines React-Projekts kann sehr einf...

So installieren und speichern Sie die PostgreSQL-Datenbank in Docker

Überspringen Sie die Docker-Installationsschritte...

Tutorial zur Installation und Verwendung von virtualenv in Deepin

virtualenv ist ein Tool zum Erstellen isolierter ...

Zwei Möglichkeiten zum Erstellen von Docker-Images

Inhaltsverzeichnis Aktualisieren Sie das Bild von...

Tomcat Server Erste Schritte Super ausführliches Tutorial

Inhaltsverzeichnis 1. Einige Konzepte von Tomcat ...

Erste Schritte mit Nginx Reverse Proxy

Inhaltsverzeichnis Überblick Die Rolle des Revers...

Tipps zur Optimierung von CSS-Schattenanimationen

Diese Technik stammt aus diesem Artikel - So anim...

Vue implementiert das Senden von Emoticons im Chatfenster

Der spezifische Code zum Senden von Emoticons im ...

MySQL Server IO 100 % Analyse- und Optimierungslösung

Vorwort Während des Stresstests besteht das unmit...

So verwenden Sie Übersetzung und Übergang in CSS3

Ich habe immer das Gefühl, dass Übersetzen und Üb...

Detaillierte Erklärung zum Upgrade von Softwarepaketversionen unter Linux

Im Linux-Umfeld möchten Sie prüfen, ob eine besti...

Grafisches Tutorial zur Installation und Konfiguration von MySQL 5.7.27

Detailliertes Download-, Installations- und Konfi...