Двубаковая прывязка падзей у 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>You choose name: {{ name }}</p>
Задание 1

Рэалізуйце двубаковую прывязку падзей бацькоўскага і даччынага кампанентаў згодна з прыведзеным у ўроку прыкладам.

Задание 2

На аснове папярэдняй задачы зрабіце двубаковую прывязку ўзросту карыстальніка.