Двосмерна веза догађаја у 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>Изабрали сте име: {{ name }}</p>
Имплементирајте двосмерну везу догађаја родитељске и дететове компоненте према примеру који је дат у лекцији.
На основу претходног задатка направите двосмерну везу старости корисника.