Իրադարձությունների երկկողմանի կապ 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

Նախորդ առաջադրանքի հիման վրա ստեղծեք օգտատիրոջ տարիքի երկկողմանի կապ: