Tweerichtingsgebeurtenisbinding in Angular
In Angular is het ook mogelijk om tweerichtingsbinding van gebeurtenissen van beide componenten te maken: de ouder- en de kindcomponent. Laten we in de HTML-sjabloon van de kindcomponent een invoerveld maken met tweerichtingsbinding voor de gebruikersnaam en een functie die de naam wijzigt:
<input [ngModel]="userName" (ngModelChange)="onNameChange($event)" />
Laten we naar onze kindcomponent gaan en
de decorator @Input importeren.
Deze is nodig voor het werken met inputs:
import { Component, Input, Output, EventEmitter } from '@angular/core';
Vervolgens binden we de decorator @Input
aan de gebruikersnaam. En de decorator @Output
binden we aan het object userNameChange,
dat wordt aangeroepen in de functie onNameChange:
export class UserComponent {
@Input() userName: string = '';
@Output() userNameChange = new EventEmitter<string>();
onNameChange(model: string) {
this.userName = model;
this.userNameChange.emit(model);
}
}
Laten we nu naar de hoofdcomponent gaan en een naam eigenschap toevoegen aan zijn klasse:
export class AppComponent {
name: string = 'alex';
}
En in de HTML-sjabloon van de oudercomponent
voeren we tweerichtingsbinding uit van de eigenschap
userName met de waarde van de eigenschap
name van de oudercomponent:
<user-data [(userName)]="name"></user-data>
<p>Je koos naam: {{ name }}</p>
Implementeer tweerichtingsgebeurtenisbinding tussen ouder- en kindcomponenten volgens het voorbeeld in de les.
Bouw voort op de vorige opdracht en maak tweerichtingsbinding voor de leeftijd van de gebruiker.