Kétirányú eseménykötés az Angular-ban
Az Angular-ban lehetséges a két komponens, a szülő és a gyermek eseményeinek kétirányú kötése is. Hozzunk létre a gyermek HTML sablonjában egy inputot a felhasználónév kétirányú kötéséhez és a nevet megváltoztató függvényhez:
<input [ngModel]="userName" (ngModelChange)="onNameChange($event)" />
Lépjünk a gyermek komponensünkbe és
importáljuk a @Input dekorátort.
Szükséges az inputok kezeléséhez:
import { Component, Input, Output, EventEmitter } from '@angular/core';
Ezután kössük a @Input dekorátort
a felhasználónévhez. A @Output
dekorátort pedig kössük a userNameChange
objektumhoz, amelyet a onNameChange
függvényben fogunk meghívni:
export class UserComponent {
@Input() userName: string = '';
@Output() userNameChange = new EventEmitter<string>();
onNameChange(model: string) {
this.userName = model;
this.userNameChange.emit(model);
}
}
Most menjünk a fő komponensbe és adjuk hozzá a név tulajdonságot az osztályához:
export class AppComponent {
name: string = 'alex';
}
A szülő komponens HTML sablonjában
valósítsuk meg a userName tulajdonság
kétirányú kötését a szülő komponens
name tulajdonságának értékével:
<user-data [(userName)]="name"></user-data>
<p>You choose name: {{ name }}</p>
Valósítsa meg a szülő és gyermek komponensek eseményeinek kétirányú kötését a leckében bemutatott példa szerint.
Az előző feladat alapján készítsen kétirányú kötést a felhasználó korához.