Dvosmerno vezivanje događaja u Angularu

Takođe u Angularu je moguće napraviti dvosmerno vezivanje događaja obe komponente: roditeljske i detinje. Hajde da napravimo u detinjem HTML šablonu input polje sa dvosmernim vezivanjem korisničkog imena i funkcije koja menja ime:

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

Pređimo u našu detinju komponentu i uvežimo u nju dekorator @Input. Potreban je za rad sa input poljima:

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

Zatim vežemo dekorator @Input za korisničko ime. A dekorator @Output vežemo za objekat userNameChange, koji će biti pozvan u funkciji 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);
  }
}

Sada pređimo u glavnu komponentu i dodajmo njenoj klasi svojstvo ime:

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

A u HTML šablonu roditeljske komponente izvršimo dvosmerno vezivanje svojstva userName sa vrednošću svojstva name roditeljske komponente:

ap.component.html<user-data [(userName)]="name"></user-data>
<p>Izabrali ste ime: {{ name }}</p>
Задание 1

Implementirajte dvosmerno vezivanje događaja roditeljske i detinje komponente prema primeru datom u lekciji.

Задание 2

Na osnovu prethodnog zadatka napravite dvosmerno vezivanje korisnikovog uzrasta.