Angularda hadysalaryň iki taraply baglanyşygy
Şeýle hem Angularda iki komponentiň hem hadysalaryny iki taraply baglanyşyk etmek mümkin: ata we çaga. Geliň, çaga HTML şablonynda ulanyjynyň ady üçin iki taraply baglanyşykly input we ady üýtgedýän funksiýa dözdeliň:
<input [ngModel]="userName" (ngModelChange)="onNameChange($event)" />
Indi çaga komponentimize geçeliň we
ona @Input dekorator import edeliň.
Ona inputlar bilen işlemek üçin zerur:
import { Component, Input, Output, EventEmitter } from '@angular/core';
Indiki ädimde @Input dekoratoryny
ulanyjynyň ady bilen baglalyň. @Output
dekorator bolsa, onNameChange funksiýasynda
çağrylar boljak userNameChange
obyekti bilen baglalyň:
export class UserComponent {
@Input() userName: string = '';
@Output() userNameChange = new EventEmitter<string>();
onNameChange(model: string) {
this.userName = model;
this.userNameChange.emit(model);
}
}
Indi esas komponente geçeliň we onuň klasyna at hökmünde aýratynlyk goşalyň:
export class AppComponent {
name: string = 'alex';
}
ATA komponentiniň HTML şablonynda
userName aýratynlygynyň bahasyny
ata komponentiniň name aýratynlygy
bilen iki taraply baglanyşyk ediň:
<user-data [(userName)]="name"></user-data>
<p>Siz şu aty saýladyňyz: {{ name }}</p>
Sapakda görkezilen mysala laýyklykda ata we çaga komponentleriniň hadysalarynyň iki taraply baglanyşygyny amala aşyryň.
Öňki mesele esas alnyp, ulanyjynyň ýaşynyň iki taraply baglanyşygyny düzüň.