Tobinding af begivenheder i Angular
I Angular kan man også lave tobinding af begivenheder for begge komponenter: forælder og barn. Lad os lave et inputfelt i barnets HTML-skabelon med tobinding af brugernavn og en funktion, der ændrer navnet:
<input [ngModel]="userName" (ngModelChange)="onNameChange($event)" />
Lad os gå til vores barnkomponent og
importere dekoratoren @Input i den.
Den er nødvendig for at arbejde med inputs :
import { Component, Input, Output, EventEmitter } from '@angular/core';
Derefter binder vi dekoratoren @Input
til brugernavnet. Og dekoratoren @Output
binder vi til objektet userNameChange,
som vil blive kaldt i funktionen onNameChange:
export class UserComponent {
@Input() userName: string = '';
@Output() userNameChange = new EventEmitter<string>();
onNameChange(model: string) {
this.userName = model;
this.userNameChange.emit(model);
}
}
Lad os nu gå til hovedkomponenten og tilføje egenskaben navn til dens klasse:
export class AppComponent {
name: string = 'alex';
}
Og i forælderkomponentens HTML-skabelon
udfører vi tobinding af egenskaben
userName med værdien af egenskaben
name i forælderkomponenten:
<user-data [(userName)]="name"></user-data>
<p>Du valgte navn: {{ name }}</p>
Implementer tobinding af begivenheder for forælder- og barnkomponenter i henhold til eksemplet vist i lektionen.
Baseret på den forrige opgave, lav tobinding af brugerens alder.