Angularдагы окуялардын эки тараптуу байланышы
Ошондой эле Angularда эки компоненттин тең окуяларын эки тараптуу байланыштырууга болот: ата-эне жана бала. Келгиле, баланын HTML-шаблонунда колдонуучунун атын эки тараптуу байланыштыруу менен инпут жана атын өзгөртүүчү функция жасайлы:
<input [ngModel]="userName" (ngModelChange)="onNameChange($event)" />
Келгиле, биздин бала компонентибизге өтөлү
жана ага @Input декораторун импорттойлу.
Ал инпуттар менен иштөө үчүн керек:
import { Component, Input, Output, EventEmitter } from '@angular/core';
Андан кийин @Input декораторун
колдонуучунун атына байлайбыз. Ал эми
@Output декораторун onNameChange
функциясында чакырыла турган userNameChange
объектисине байлайбыз:
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>Сиз тандаган ат: {{ name }}</p>
Сабакта келтирилген мисалга ылайык ата-эне жана бала компоненттердин окуяларынын эки тараптуу байланышын ишке ашырыңыз.
Мурунку тапшырманын негизинде колдонуучунун жашын эки тараптуу байланыштырыңыз.