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:

app/user/user.component.html<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:

app/user/user.component.tsimport { 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:

app/user/user.component.tsexport 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:

app/app.component.tsexport 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:

ap.component.html<user-data [(userName)]="name"></user-data>
<p>You choose name: {{ name }}</p>
Задание 1

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.

Задание 2

Az előző feladat alapján készítsen kétirányú kötést a felhasználó korához.