Hadisələrin Angularda Ikiistiqamətli Əlaqələndirilməsi

Həmçinin Angularda hər iki komponentin - ata və uşaq komponentlərinin hadisələrinin ikiistiqamətli əlaqələndirilməsini etmək olar. Gəlin uşaq HTML şablonunda istifadəçi adı üçün ikiistiqamətli əlaqəsi olan bir input və adı dəyişən funksiya yaradaq:

app/user/user.component.html<input [ngModel]="userName" (ngModelChange)="onNameChange($event)" />

İndi uşaq komponentimizə keçək və ona @Input dekoratorunu import edək. O, inputlarla işləmək üçün lazımdır:

app/user/user.component.tsimport { Component, Input, Output, EventEmitter } from '@angular/core';

Sonra, @Input dekoratorunu istifadəçi adı ilə əlaqələndiririk. @Output dekoratorunu isə onNameChange funksiyasında çağırılacaq userNameChange obyekti ilə əlaqələndiririk:

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);
  }
}

İndi əsas komponentə keçib onun sinfinə ad xassəsi əlavə edək:

app/app.component.tsexport class AppComponent {
  name: string = 'alex';
}

Və ata komponentin HTML şablonunda userName xassəsini, ata komponentin name xassəsinin qiyməti ilə ikiistiqamətli əlaqələndirək:

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

Dərsdə göstərilən nümunə əsasında ata və uşaq komponentlərinin hadisələrinin ikiistiqamətli əlaqələndirilməsini həyata keçirin.

Задание 2

Əvvəlki məsələ əsasında istifadəçinin yaşı üçün ikiistiqamətli əlaqə yaradın.