Angularдагы окуялардын эки тараптуу байланышы

Ошондой эле Angularда эки компоненттин тең окуяларын эки тараптуу байланыштырууга болот: ата-эне жана бала. Келгиле, баланын HTML-шаблонунда колдонуучунун атын эки тараптуу байланыштыруу менен инпут жана атын өзгөртүүчү функция жасайлы:

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

Келгиле, биздин бала компонентибизге өтөлү жана ага @Input декораторун импорттойлу. Ал инпуттар менен иштөө үчүн керек:

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

Андан кийин @Input декораторун колдонуучунун атына байлайбыз. Ал эми @Output декораторун onNameChange функциясында чакырыла турган userNameChange объектисине байлайбыз:

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

Эми негизги компонентке өтөлү жана анын класына ат касиетин кошобуз:

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

Ата-эне компонентинин HTML-шаблонунда userName касиетин ата-эне компонентинин name касиетинин мааниси менен эки тараптуу байлайбыз:

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

Сабакта келтирилген мисалга ылайык ата-эне жана бала компоненттердин окуяларынын эки тараптуу байланышын ишке ашырыңыз.

Задание 2

Мурунку тапшырманын негизинде колдонуучунун жашын эки тараптуу байланыштырыңыз.