Dvojstupňové viazanie udalostí v Angular
V Angular je tiež možné vytvoriť dvojstupňové viazanie udalostí oboch komponentov: rodičovského a dcérskeho. Vytvorme v dcérskom HTML šablóne vstup s dvojstupňovým viazaním mena používateľa a funkcie, ktorá mení meno:
<input [ngModel]="userName" (ngModelChange)="onNameChange($event)" />
Prejdime do nášho dcérskeho komponentu a
importujme do neho dekorátor @Input.
Je potrebný pre prácu so vstupmi:
import { Component, Input, Output, EventEmitter } from '@angular/core';
Ďalej viažeme dekorátor @Input
k menu používateľa. A dekorátor @Output
viažeme k objektu userNameChange,
ktorý sa bude volať vo funkcii onNameChange:
export class UserComponent {
@Input() userName: string = '';
@Output() userNameChange = new EventEmitter<string>();
onNameChange(model: string) {
this.userName = model;
this.userNameChange.emit(model);
}
}
Teraz prejdime do hlavného komponentu a pridajme k jeho triede vlastné meno:
export class AppComponent {
name: string = 'alex';
}
A v HTML šablóne rodičovského komponentu
vykonajme dvojstupňové viazanie vlastnosti
userName s hodnotou vlastnosti
name rodičovského komponentu:
<user-data [(userName)]="name"></user-data>
<p>You choose name: {{ name }}</p>
Realizujte dvojstupňové viazanie udalostí rodičovského a dcérskeho komponentov podľa uvedeného príkladu v lekcii.
Na základe predchádzajúcej úlohy vytvorte dvojstupňové viazanie veku používateľa.