Իրադարձությունների երկկողմանի կապ Angular-ում
Բացի այդ, Angular-ում կարելի է իրականացնել երկկողմանի կապ երկու կոմպոնենտների իրադարձությունների համար՝ ծնողական և դուստր: Եկեք դուստր HTML-տեմպլեյտում ստեղծենք մուտքագրման դաշտ՝ օգտատիրոջ անվան երկկողմանի կապով և ֆունկցիա, որն փոխում է անունը:
<input [ngModel]="userName" (ngModelChange)="onNameChange($event)" />
Անցնենք մեր դուստր կոմպոնենտին և
ներմուծենք դրա մեջ @Input դեկորատորը:
Այն անհրաժեշտ է ինպուտների հետ աշխատելու համար:
import { Component, Input, Output, EventEmitter } from '@angular/core';
Հաջորդը, կապում ենք @Input դեկորատորը
օգտատիրոջ անվան հետ: Իսկ @Output դեկորատորը
կապում ենք userNameChange օբյեկտի հետ,
որը կկանչվի onNameChange ֆունկցիայում:
export class UserComponent {
@Input() userName: string = '';
@Output() userNameChange = new EventEmitter<string>();
onNameChange(model: string) {
this.userName = model;
this.userNameChange.emit(model);
}
}
Այժմ անցնենք հիմնական կոմպոնենտին և ավելացնենք դրա դասին անուն հատկություն:
export class AppComponent {
name: string = 'alex';
}
Իսկ ծնողական կոմպոնենտի HTML-տեմպլեյտում
իրականացնում ենք userName հատկության երկկողմանի կապը
ծնողական կոմպոնենտի name հատկության արժեքի հետ:
<user-data [(userName)]="name"></user-data>
<p>You choose name: {{ name }}</p>
Իրականացրեք ծնողական և դուստր կոմպոնենտների իրադարձությունների երկկողմանի կապ՝ համաձայն դասում բերված օրինակի:
Նախորդ առաջադրանքի հիման վրա ստեղծեք օգտատիրոջ տարիքի երկկողմանի կապ: