Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Arten der Datenbindung in Angular | Komponenten und Templates
Einführung in Angular

bookArten der Datenbindung in Angular

Wenn eine Komponente und ihr Template miteinander interagieren, können Daten und Ereignisse auf verschiedene Arten zwischen ihnen ausgetauscht werden. Dies wird als Datenbindung bezeichnet.

In Angular gibt es vier Arten der Datenbindung, die jeweils einen bestimmten Zweck erfüllen.

Im Folgenden wird anhand einer einfachen Aufgabenkomponente erläutert, wie diese funktionieren:

task-component.ts

task-component.ts

copy

Hier wird ein Aufgabenobjekt mit drei Eigenschaften erstellt: id, title und completed. Diese Eigenschaften beschreiben eine bestimmte Aufgabe – ihren Namen und ob sie abgeschlossen wurde.

Interpolation

Wenn zum Beispiel eine Variable wie task.title vorhanden ist, kann diese in {{ }} eingeschlossen werden, und Angular rendert deren Wert in das HTML.

task-component.html

task-component.html

copy

Wenn Angular das Template verarbeitet, findet es den Ausdruck {{ task.title }} und ersetzt ihn durch den aktuellen Wert von task.title aus der Komponente.

Wenn der Wert 'Buy groceries' ist, erscheint genau dieser Text innerhalb des <h3>-Tags. Der gleiche Prozess gilt für alle anderen Werte, die Sie interpolieren.

Interpolation ist also einseitig: Die Daten fließen von der Komponente zum Template, und der Benutzer sieht lediglich das Ergebnis.

Property Binding

Manchmal möchten Sie nicht nur Text anzeigen, sondern auch das Verhalten eines Elements steuern, wie z. B. das Deaktivieren eines Buttons, das Setzen einer Bildquelle oder das Aktivieren eines Kontrollkästchens.

Angular ermöglicht es, Werte an Eigenschaften von HTML-Elementen mit eckigen Klammern zu binden.

task-component.html

task-component.html

copy

Stellen Sie sich vor, die Aufgabe ist bereits erledigt (task.completed = true). In diesem Fall soll die Schaltfläche deaktiviert sein. Wenn Angular [disabled]="task.completed" sieht, übernimmt es den Wert aus der Komponente und bindet ihn an die disabled-Eigenschaft des DOM-Elements.

Ist der Wert true, wird die Schaltfläche deaktiviert. Ist er false, bleibt die Schaltfläche aktiv.

Auch dies ist eine Einweg-Bindung: Die Daten fließen von der Komponente zum Template, und das Template passt sich an den aktuellen Zustand des task-Objekts an.

Ereignisbindung

Um Ihre Anwendung auf Benutzeraktionen (wie Klicks) reagieren zu lassen, stellt Angular die Ereignisbindung bereit. Wenn ein Benutzer mit einem Element interagiert, können Sie dieses Ereignis "abfangen" und eine Methode in Ihrer Komponente aufrufen.

Fügen wir der Komponente eine Methode hinzu:

task-component.ts

task-component.ts

copy

Und aktualisieren Sie das Template:

task-component.html

task-component.html

copy

Wenn der Benutzer auf die Schaltfläche klickt, erkennt Angular das (click)-Event und ruft die Methode toggleComplete() in der Komponente auf. Diese Methode wechselt den Wert von task.completed. Anschließend rendert Angular das Template neu, und dank der Interpolation ({{ task.completed ? 'Undo' : 'Complete' }}) wird der Schaltflächentext sofort aktualisiert.

Hier fließen die Daten in eine Richtung – vom Template zurück in die Komponente (eine Aktion wird nach innen übergeben).

Zwei-Wege-Bindung

Manchmal ist es erforderlich, dass Änderungen im Template (wie das Eingeben in ein Eingabefeld) sofort die Komponente aktualisieren — und Änderungen in der Komponente sofort das Template aktualisieren. Angular vereinfacht dies mit der Zwei-Wege-Bindung mittels [(ngModel)].

Wichtig: Um [(ngModel)] zu verwenden, muss das FormsModule importiert werden — wie unten gezeigt:

task-component.ts

task-component.ts

copy

Und hier ist das Template:

task-component.html

task-component.html

copy

Hier findet die Magie des Zwei-Wege-Bindings statt. Wenn ein Benutzer in das Eingabefeld tippt, aktualisiert Angular automatisch task.title innerhalb der Komponente. Und wenn sich task.title in der Komponente ändert, spiegelt Angular diese Änderung sofort im Eingabefeld wider.

Im Gegensatz zu anderen Bindungsarten hält das Zwei-Wege-Binding die Komponente und das Template jederzeit synchron.

Wichtige Unterschiede

Jede dieser Bindungsmethoden verfügt über eigene Merkmale und eignet sich am besten für unterschiedliche Szenarien der Dateninteraktion innerhalb einer Anwendung.

1. Welcher Databinding-Typ wird verwendet, um den Wert einer Variablen einer Komponente im Template anzuzeigen?

2. Welcher Databinding-Typ ermöglicht es, eine Variable einer Komponente über ein Formular zu aktualisieren und sie mit dem Eingabeelement im Template zu synchronisieren?

3. Welcher Typ der Datenbindung wird verwendet, um einen Button zu deaktivieren, wenn eine Aufgabe abgeschlossen ist?

4. Welcher Typ der Datenbindung ermöglicht das Auslösen einer Komponenten-Methode beim Klicken auf einen Button?

question mark

Welcher Databinding-Typ wird verwendet, um den Wert einer Variablen einer Komponente im Template anzuzeigen?

Select the correct answer

question mark

Welcher Databinding-Typ ermöglicht es, eine Variable einer Komponente über ein Formular zu aktualisieren und sie mit dem Eingabeelement im Template zu synchronisieren?

Select the correct answer

question mark

Welcher Typ der Datenbindung wird verwendet, um einen Button zu deaktivieren, wenn eine Aufgabe abgeschlossen ist?

Select the correct answer

question mark

Welcher Typ der Datenbindung ermöglicht das Auslösen einer Komponenten-Methode beim Klicken auf einen Button?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 2. Kapitel 4

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

Awesome!

Completion rate improved to 3.13

bookArten der Datenbindung in Angular

Swipe um das Menü anzuzeigen

Wenn eine Komponente und ihr Template miteinander interagieren, können Daten und Ereignisse auf verschiedene Arten zwischen ihnen ausgetauscht werden. Dies wird als Datenbindung bezeichnet.

In Angular gibt es vier Arten der Datenbindung, die jeweils einen bestimmten Zweck erfüllen.

Im Folgenden wird anhand einer einfachen Aufgabenkomponente erläutert, wie diese funktionieren:

task-component.ts

task-component.ts

copy

Hier wird ein Aufgabenobjekt mit drei Eigenschaften erstellt: id, title und completed. Diese Eigenschaften beschreiben eine bestimmte Aufgabe – ihren Namen und ob sie abgeschlossen wurde.

Interpolation

Wenn zum Beispiel eine Variable wie task.title vorhanden ist, kann diese in {{ }} eingeschlossen werden, und Angular rendert deren Wert in das HTML.

task-component.html

task-component.html

copy

Wenn Angular das Template verarbeitet, findet es den Ausdruck {{ task.title }} und ersetzt ihn durch den aktuellen Wert von task.title aus der Komponente.

Wenn der Wert 'Buy groceries' ist, erscheint genau dieser Text innerhalb des <h3>-Tags. Der gleiche Prozess gilt für alle anderen Werte, die Sie interpolieren.

Interpolation ist also einseitig: Die Daten fließen von der Komponente zum Template, und der Benutzer sieht lediglich das Ergebnis.

Property Binding

Manchmal möchten Sie nicht nur Text anzeigen, sondern auch das Verhalten eines Elements steuern, wie z. B. das Deaktivieren eines Buttons, das Setzen einer Bildquelle oder das Aktivieren eines Kontrollkästchens.

Angular ermöglicht es, Werte an Eigenschaften von HTML-Elementen mit eckigen Klammern zu binden.

task-component.html

task-component.html

copy

Stellen Sie sich vor, die Aufgabe ist bereits erledigt (task.completed = true). In diesem Fall soll die Schaltfläche deaktiviert sein. Wenn Angular [disabled]="task.completed" sieht, übernimmt es den Wert aus der Komponente und bindet ihn an die disabled-Eigenschaft des DOM-Elements.

Ist der Wert true, wird die Schaltfläche deaktiviert. Ist er false, bleibt die Schaltfläche aktiv.

Auch dies ist eine Einweg-Bindung: Die Daten fließen von der Komponente zum Template, und das Template passt sich an den aktuellen Zustand des task-Objekts an.

Ereignisbindung

Um Ihre Anwendung auf Benutzeraktionen (wie Klicks) reagieren zu lassen, stellt Angular die Ereignisbindung bereit. Wenn ein Benutzer mit einem Element interagiert, können Sie dieses Ereignis "abfangen" und eine Methode in Ihrer Komponente aufrufen.

Fügen wir der Komponente eine Methode hinzu:

task-component.ts

task-component.ts

copy

Und aktualisieren Sie das Template:

task-component.html

task-component.html

copy

Wenn der Benutzer auf die Schaltfläche klickt, erkennt Angular das (click)-Event und ruft die Methode toggleComplete() in der Komponente auf. Diese Methode wechselt den Wert von task.completed. Anschließend rendert Angular das Template neu, und dank der Interpolation ({{ task.completed ? 'Undo' : 'Complete' }}) wird der Schaltflächentext sofort aktualisiert.

Hier fließen die Daten in eine Richtung – vom Template zurück in die Komponente (eine Aktion wird nach innen übergeben).

Zwei-Wege-Bindung

Manchmal ist es erforderlich, dass Änderungen im Template (wie das Eingeben in ein Eingabefeld) sofort die Komponente aktualisieren — und Änderungen in der Komponente sofort das Template aktualisieren. Angular vereinfacht dies mit der Zwei-Wege-Bindung mittels [(ngModel)].

Wichtig: Um [(ngModel)] zu verwenden, muss das FormsModule importiert werden — wie unten gezeigt:

task-component.ts

task-component.ts

copy

Und hier ist das Template:

task-component.html

task-component.html

copy

Hier findet die Magie des Zwei-Wege-Bindings statt. Wenn ein Benutzer in das Eingabefeld tippt, aktualisiert Angular automatisch task.title innerhalb der Komponente. Und wenn sich task.title in der Komponente ändert, spiegelt Angular diese Änderung sofort im Eingabefeld wider.

Im Gegensatz zu anderen Bindungsarten hält das Zwei-Wege-Binding die Komponente und das Template jederzeit synchron.

Wichtige Unterschiede

Jede dieser Bindungsmethoden verfügt über eigene Merkmale und eignet sich am besten für unterschiedliche Szenarien der Dateninteraktion innerhalb einer Anwendung.

1. Welcher Databinding-Typ wird verwendet, um den Wert einer Variablen einer Komponente im Template anzuzeigen?

2. Welcher Databinding-Typ ermöglicht es, eine Variable einer Komponente über ein Formular zu aktualisieren und sie mit dem Eingabeelement im Template zu synchronisieren?

3. Welcher Typ der Datenbindung wird verwendet, um einen Button zu deaktivieren, wenn eine Aufgabe abgeschlossen ist?

4. Welcher Typ der Datenbindung ermöglicht das Auslösen einer Komponenten-Methode beim Klicken auf einen Button?

question mark

Welcher Databinding-Typ wird verwendet, um den Wert einer Variablen einer Komponente im Template anzuzeigen?

Select the correct answer

question mark

Welcher Databinding-Typ ermöglicht es, eine Variable einer Komponente über ein Formular zu aktualisieren und sie mit dem Eingabeelement im Template zu synchronisieren?

Select the correct answer

question mark

Welcher Typ der Datenbindung wird verwendet, um einen Button zu deaktivieren, wenn eine Aufgabe abgeschlossen ist?

Select the correct answer

question mark

Welcher Typ der Datenbindung ermöglicht das Auslösen einer Komponenten-Methode beim Klicken auf einen Button?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 2. Kapitel 4
some-alt