Templates
Ziele
- Du weisst, was ein Template ist.
- Du weisst, für was ng-container und ng-template sind und kannst diese anwenden.
Was ist ein Template?
In Angular ist das Template der Teil eines Components, der die Benutzeroberfläche definiert. Es ist im Wesentlichen das HTML, das vom Component angezeigt wird und mit der Benutzer interagieren kann.
Das Template kann jedoch mehr als nur HTML enthalten. Es kann auch Angularspezifische Syntax wie Template Styling, Directives, Pipes, Interpolationen und Bindings enthalten, die die Funktionalität und das Verhalten des Components bestimmen.
|
|
Was ist das DOM
Das Document Object Model (DOM) ist eine Programmierschnittstelle, die eine strukturierte Darstellung des HTML zur Verfügung stellt. Es stellt eine Baumstruktur dar, in der jedes Element im HTML als Knoten (Node) repräsentiert wird.
Durch die Verwendung des DOMs können Entwickler dynamische Webseiten erstellen, auf Benutzerinteraktionen reagieren, Inhalte ändern und vieles mehr. Es ermöglicht die Trennung von Inhalt (HTML), Präsentation (CSS) und Verhalten (JavaScript), was eine flexible und interaktive Webentwicklung ermöglicht.
ng-container & ng-template
Durch die Verwendung von ng-container
und ng-template
kann der HTML-Code in Components besser strukturiert, lesbarer und wiederverwendbarer gemacht werden. Sie bieten eine flexible Möglichkeit, Inhalte bedingt anzuzeigen, dynamische Templates zu erstellen und den Code effizienter zu gestalten.
ng-container
und ng-template
erzeugen kein zusätzliches HTML-Element im DOM, das bedeutet das man nur den HTML-Code innerhalb der beiden im DOM sieht und nur von diesen welche aktiv sind.
Dies eignet sich gut, wenn man andere Directives wie *ngIf
, *ngFor
oder *ngSwitch
verwenden möchte.
Um das else
-Statement in Kombination mit ngIf
zu verwenden, definiert man einen Template-Verweis (Referenz) mit einem #-Präfix und verwendet ihn in einem ng-template
. Somit kann man sagen das wenn die Condition nicht zutrifft man ein anderes Template anzeigen möchte.
Wenn man ng-container
und ng-template
verwendet ist vielfach auch ein *ngTemplateOutlet
im Spiel. *ngTemplateOutlet
ist auch ein Directive, welche verwendet wird, um ein Template an einer bestimmten Stelle in einem Template eines Components einzusetzen. Es wird verwendet, wenn man nicht mit *ngif
arbeiten muss (oder will, weil die Bedingung immer true sein sollte). Es ist wie im else
eine Template-Verweis.
|
|
|
|
Wenn der obenstehende Code gerendert wurde, sieht man das im DOM nun nur der div-tag, den h1-tag und die beiden p-tags zusehen sind, das ng-container
und ng-template
nicht.