Angularda hadysalaryň iki taraply baglanyşygy

Şeýle hem Angularda iki komponentiň hem hadysalaryny iki taraply baglanyşyk etmek mümkin: ata we çaga. Geliň, çaga HTML şablonynda ulanyjynyň ady üçin iki taraply baglanyşykly input we ady üýtgedýän funksiýa dözdeliň:

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

Indi çaga komponentimize geçeliň we ona @Input dekorator import edeliň. Ona inputlar bilen işlemek üçin zerur:

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

Indiki ädimde @Input dekoratoryny ulanyjynyň ady bilen baglalyň. @Output dekorator bolsa, onNameChange funksiýasynda çağrylar boljak userNameChange obyekti bilen baglalyň:

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

Indi esas komponente geçeliň we onuň klasyna at hökmünde aýratynlyk goşalyň:

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

ATA komponentiniň HTML şablonynda userName aýratynlygynyň bahasyny ata komponentiniň name aýratynlygy bilen iki taraply baglanyşyk ediň:

ap.component.html<user-data [(userName)]="name"></user-data>
<p>Siz şu aty saýladyňyz: {{ name }}</p>
Задание 1

Sapakda görkezilen mysala laýyklykda ata we çaga komponentleriniň hadysalarynyň iki taraply baglanyşygyny amala aşyryň.

Задание 2

Öňki mesele esas alnyp, ulanyjynyň ýaşynyň iki taraply baglanyşygyny düzüň.