Sie können dem HTML in Ihrem Angular-Projekt Anweisungen hinzufügen. Einige steuern die Struktur Ihres Markups, während sich andere auf Attribute konzentrieren.
In diesem Artikel werden die sechs häufigsten Angular-Direktiven beschrieben: ngFor, ngIf, ngClass, ngStyle, ngModel und ngSwitch.
Was sind Winkeldirektiven?
Mit Angular-Direktiven können Sie if-Anweisungen und for-Schleifen verwenden und dem HTML-Code eines Angular-Projekts andere Verhaltensweisen hinzufügen.
Richtlinie | Beschreibung |
---|---|
*ngIf | Sie können ngIf verwenden, wenn bestimmte HTML-Blöcke nur angezeigt werden sollen, wenn sie eine bestimmte Bedingung erfüllen. Zum Beispiel, wenn Sie ein Formular mit einem Popup hatten, das angezeigt wird, nachdem ein Benutzer Eingaben für ein bestimmtes Feld gemacht hat. |
*ngFor | Sie können ngFor verwenden, wenn Sie einen bestimmten Block mehrmals wiederholen müssen. Wenn Sie beispielsweise eine Liste mit Elementen haben und für jedes Element ein div anzeigen müssen. |
*ngKlasse | Dies fügt bedingtes Styling mit einer Klasse hinzu. Wenn eine if-Anweisung die Bedingung erfüllt, wird die angegebene Klasse angewendet. |
*ngStyle | Dies fügt bedingtes Inline-Styling hinzu. Wenn eine if-Anweisung die Bedingung erfüllt, werden die angegebenen Stile angewendet. |
*ngModell | Auf diese Weise können Sie eine Zwei-Wege-Bindung durchführen. Das bedeutet, dass Sie Daten in beide Richtungen zwischen der HTML- und der TypeScript-Datei übertragen können. Beispielsweise können Sie den Wert eines Attributs von der TypeScript-Datei an die HTML-Datei übergeben und umgekehrt. |
*ngSwitch | Auf diese Weise können Sie eine switch-Anweisung mit vielen Fällen hinzufügen, um viele Werte zu überprüfen. Basierend auf den Fällen werden bestimmte HTML-Elemente angezeigt. |
Strukturdirektiven betreffen die Struktur der HTML-Elemente. Dazu gehören ngIf, ngFor und ngSwitch. Attributdirektiven beinhalten das Ändern der Eigenschaften der HTML-Elemente. Dazu gehören ngStyle, ngClass und ngModel.
So verwenden Sie ngIf
Um ngIf zu verwenden, benötigen Sie eine Bedingung, die als wahr ausgewertet wird, damit ein bestimmtes HTML-Element angezeigt wird.
- Fügen Sie Ihrer TypeScript-Datei zwei Variablen hinzu. In diesem Beispiel gibt es eine noPlaylists-Variable und eine Variable zum Speichern der Wiedergabelisten. Diese Variable wird als wahr ausgewertet, wenn die Länge des Playlists-Arrays 0 ist.
noPlaylists: boolean = false;
Wiedergabelisten: beliebig = [];Konstrukteur() { }
ngOnInit(): void {
if (this.playlists.length 0) {
this.noPlaylists = true;
}
} - Fügen Sie im HTML-Code die *ngIf-Anweisung hinzu. Wenn noPlaylists wahr ist, wird die im Abschnitt unten enthaltene Fehlermeldung angezeigt. Andernfalls wird es nicht. Sie können ngIf auf verschiedene Arten von anwenden HTML-Tags.
Es sind keine Wiedergabelisten verfügbar.
- Um der if-Anweisung eine „else“-Komponente hinzuzufügen, müssen Sie den HTML-Code für den „else“-Teil in einem Vorlagenblock hinzufügen.
Es sind keine Wiedergabelisten verfügbar.
Wiedergabelisten gefunden.
So verwenden Sie ngFor
Wenn Sie eine bestimmte Anzahl von Blöcken auf einer Seite wiederholen müssen, können Sie die ngFor-Direktive verwenden.
- Fügen Sie in der TypeScript-Datei dem Array Elemente hinzu.
Wiedergabelisten: alle = [
{"name": "Rock", "numberOfSongs": 5},
{"name": "Contemporary", "numberOfSongs": 9},
{"name": "Beliebt", "numberOfSongs": 14},
{"name": "Acoustic", "numberOfSongs": 3},
{"name": "Hochzeitslieder", "numberOfSongs": 25},
{"name": "Metal", "numberOfSongs": 0},
]; - Fügen Sie in der HTML-Datei die *ngFor-Anweisung hinzu.
Innerhalb des ngFor können Sie auf jedes Objekt im Array mit der Variablen „playlist“ verweisen. "playlist.name" und "playlist.numberOfSongs" drucken beide Attribute innerhalb der Schild.Wiedergabelisten gefunden.
{{playlist.name}}
{{playlist.numberOfSongs}} Lieder
So verwenden Sie ngClass
Sie können die Stilklasse, die ein bestimmtes div verwendet, basierend auf einer Bedingung ändern.
- Fügen Sie der CSS-Datei zwei Klassen mit unterschiedlichen Stilen hinzu. Sie können jede Art von hinzufügen CSS-Styling Sie möchten, wie z. B. verschiedene Hintergrundfarben.
.Lieder {
Hintergrundfarbe: #F7F5F2;
}
.noSongs {
Hintergrundfarbe: #FFA8A8;
} - Fügen Sie innerhalb der for-Schleife aus dem vorherigen Schritt die Attributdirektive ngClass hinzu. [ngClass]="playlist.numberOfSongs > 0? 'songs': 'noSongs'" verwendet dasselbe ternären Operator, der JavaScript und andere Sprachen verwenden.
Wenn die Anzahl der Songs größer als Null ist, wird die Klasse „Songs“ auf das div angewendet. Dadurch bekommt das div eine graue Hintergrundfarbe. Andernfalls, wenn die Anzahl der Songs null ist, wird die Klasse „noSongs“ auf das div angewendet. Dadurch erhält das div eine rote Hintergrundfarbe.
{{playlist.name}}
{{playlist.numberOfSongs}} Lieder
So verwenden Sie ngStyle
Anstatt ngClass zu verwenden, können Sie ngStyle verwenden, wenn Sie Inline-Styling anstelle von Styles über eine Klasse anwenden möchten.
- Ändern Sie die ngClass aus dem vorherigen Schritt, um stattdessen ngStyle zu verwenden.
{{playlist.name}}
{{playlist.numberOfSongs}} Lieder
[ngStyle]="{'background-color': playlist.numberOfSongs > 0? '#F7F5F2': '#FFA8A8', 'color': playlist.numberOfSongs > 0? 'schwarz': 'dunkelblau' }"
So verwenden Sie ngModel
Sie können ngModel für die bidirektionale Bindung verwenden. Das bedeutet, dass Sie den Wert eines Attributs sowohl zwischen HTML- als auch TypeScript-Dateien übergeben können.
Angenommen, Sie haben ein Eingabeelement in der HTML-Datei, das ngModel verwendet. Das ngModel-Attribut ist an eine Variable in der TypeScript-Datei gebunden. Wenn Sie einen Wert in die Eingabe eingeben, wird die Variable in der TypeScript-Datei aktualisiert.
Die am Attribut in der TypeScript-Datei vorgenommenen Änderungen spiegeln sich auch im HTML wider, wenn andere divs diese Variable verwenden.
- Fügen Sie in app.module.ts das FormsModule zu den imports oben in der Datei und auch zum imports-Array hinzu.
importiere { FormsModule } aus '@angular/forms';
@NgModule({
Importe: [
...
FormsModule
]
}) - Fügen Sie der TypeScript-Datei ein Attribut hinzu, um zu verfolgen, wann der Benutzer eine Wiedergabeliste umbenennt.
Wiedergabelisten umbenennen: boolean = false;
- Machen Sie die Playlists-Variable öffentlich, damit darauf zugegriffen werden kann, wenn Sie ngModel in der HTML-Datei verwenden.
öffentliche Wiedergabelisten: beliebig = [
...
]; - Fügen Sie der HTML-Datei zwei Schaltflächen hinzu, mit denen Sie jede Wiedergabeliste umbenennen oder die Umbenennung abbrechen können.
- Füge ein Eingabefeld in das Div jeder Playlist ein. Die Eingabe wird erst sichtbar, wenn Sie auf klicken Wiedergabeliste umbenennen Taste. Dieses Eingabefeld hat ein ngModel, das an „playlist.name“ gebunden ist.
Wenn Sie einen neuen Namen in das Eingabefeld eingeben, wird playlist.name in der TypeScript-Datei aktualisiert. Dadurch werden dann auch die anderen divs in der HTML-Datei aktualisiert, die playlist.name verwenden.
So verwenden Sie ngSwitch
Sie können ngSwitch verwenden, um bestimmte Elemente basierend auf den Fällen innerhalb eines Schalterfalls anzuzeigen.
- Fügen Sie den Objekten innerhalb des Playlists-Arrays ein neues „rating“-Attribut hinzu. Dieses Attribut kann eine beliebige Zahl zwischen 0 und 5 (einschließlich) sein.
öffentliche Wiedergabelisten: beliebig = [
{"name": "Rock", "numberOfSongs": 5, "rating": 5},
{"name": "Contemporary", "numberOfSongs": 9, "rating": 1},
{"name": "Popular", "numberOfSongs": 14, "rating": 5},
{"name": "Acoustic", "numberOfSongs": 3, "rating": 4},
{"name": "Hochzeitslieder", "numberOfSongs": 25, "rating": 5},
{"name": "Metal", "numberOfSongs": 0, "rating": 0},
]; - Fügen Sie unter dem Namen und der Anzahl der Songs für eine Wiedergabeliste einen Wechselfall hinzu. Basierend auf der Bewertungszahl für die Playlist zeigt die Playlist die korrekte Anzahl an Sternen.
{{playlist.name}}
{{playlist.numberOfSongs}} Lieder
★★★★★★★★★★★★★★★Keine Bewertungen
Mehr lernen mit Angular
Jetzt haben Sie die Grundlagen von Angular-Direktiven gelernt, einschließlich der Verwendung von ngIf, ngFor, ngClass, ngStyle, ngModel und ngSwitch. Sie können sie kombinieren, um komplexere Benutzeroberflächen zu erstellen. Es gibt so viel mehr für Sie zu entdecken und über Angular zu lernen, egal ob Sie Anfänger oder Fortgeschrittener sind.
Top 8 Angular-Kurse für Anfänger und Fortgeschrittene
Lesen Sie weiter
Verwandte Themen
- Programmierung
- Programmierung
- JavaScript
- HTML
- CSS
Über den Autor
Sharlene ist Tech Writer bei MUO und arbeitet auch Vollzeit in der Softwareentwicklung. Sie hat einen Bachelor of IT und hat bereits Erfahrung in der Qualitätssicherung und Universitätsnachhilfe. Sharlene liebt Spiele und spielt Klavier.
Abonnieren Sie unseren Newsletter
Abonnieren Sie unseren Newsletter für technische Tipps, Rezensionen, kostenlose E-Books und exklusive Angebote!
Klicken Sie hier, um sich anzumelden