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 декораторын userNameChange объектісіне байлаймыз, ол onNameChange функциясында шақырылады:

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>You choose name: {{ name }}</p>
Задание 1

Сабақта келтірілген мысал бойынша ата-ана және бала компоненттерінің оқиғаларының екіжақты байланысын жүзеге асырыңыз.

Задание 2

Алдыңғы тапсырма негізінде пайдаланушы жасының екіжақты байланысын жасаңыз.