Двосмерна веза догађаја у Angular-у

Такође у Angular-у можемо направити двосмерну везу догађаја обе компоненте: родитељске и дететове. Хајде да направимо у дететовом HTML шаблону унос поља са двосмерном везом корисничког имена и функције, која мења име:

app/user/user.component.html<input [ngModel]="userName" (ngModelChange)="onNameChange($event)" />

Идемо у нашу дететову компоненту и увезимо у њу декоратор @Input. Потребан је за рад са уносним пољима:

app/user/user.component.tsimport { Component, Input, Output, EventEmitter } from '@angular/core';

Затим вежемо декоратор @Input за корисничко име. А декоратор @Output везујемо за објекат userNameChange, који ће се позивати у функцији onNameChange:

app/user/user.component.tsexport class UserComponent {
  @Input() userName: string = '';
  @Output() userNameChange = new EventEmitter<string>();
  onNameChange(model: string) {
    this.userName = model;
    this.userNameChange.emit(model);
  }
}

Сада идемо у главну компоненту и додајемо њеном класи својство име:

app/app.component.tsexport class AppComponent {
  name: string = 'alex';
}

А у HTML шаблону родитељске компоненте обављамо двосмерну везу својства userName са вредношћу својства name родитељске компоненте:

ap.component.html<user-data [(userName)]="name"></user-data>
<p>Изабрали сте име: {{ name }}</p>
Задание 1

Имплементирајте двосмерну везу догађаја родитељске и дететове компоненте према примеру који је дат у лекцији.

Задание 2

На основу претходног задатка направите двосмерну везу старости корисника.