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>
Сабақта келтірілген мысал бойынша ата-ана және бала компоненттерінің оқиғаларының екіжақты байланысын жүзеге асырыңыз.
Алдыңғы тапсырма негізінде пайдаланушы жасының екіжақты байланысын жасаңыз.