Tvåvägsbindning av händelser i Angular

I Angular kan man också skapa tvåvägsbindning av händelser för båda komponenterna: förälder och barn. Låt oss skapa en input i barnets HTML-mall med tvåvägsbindning av användarnamnet och en funktion som ändrar namnet:

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

Låt oss gå till vår barnkomponent och importera dekoratören @Input. Den behövs för att arbeta med inputs :

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

Sedan binder vi dekoratören @Input till användarnamnet. Och dekoratören @Output binder vi till objektet userNameChange, som kommer att anropas i funktionen 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);
  }
}

Nu går vi till huvudkomponenten och lägger till egenskapen namn till dess klass:

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

Och i HTML-mallen för förälderkomponenten utför vi tvåvägsbindning av egenskapen userName med värdet av egenskapen name i förälderkomponenten:

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

Implementera tvåvägsbindning av händelser för förälder- och barnkomponenter enligt exemplet i lektionen.

Задание 2

Baserat på den föregående uppgiften, skapa tvåvägsbindning av användarens ålder.