Tweerichtingsgebeurtenisbinding in Angular

In Angular is het ook mogelijk om tweerichtingsbinding van gebeurtenissen van beide componenten te maken: de ouder- en de kindcomponent. Laten we in de HTML-sjabloon van de kindcomponent een invoerveld maken met tweerichtingsbinding voor de gebruikersnaam en een functie die de naam wijzigt:

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

Laten we naar onze kindcomponent gaan en de decorator @Input importeren. Deze is nodig voor het werken met inputs:

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

Vervolgens binden we de decorator @Input aan de gebruikersnaam. En de decorator @Output binden we aan het object userNameChange, dat wordt aangeroepen in de functie 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);
  }
}

Laten we nu naar de hoofdcomponent gaan en een naam eigenschap toevoegen aan zijn klasse:

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

En in de HTML-sjabloon van de oudercomponent voeren we tweerichtingsbinding uit van de eigenschap userName met de waarde van de eigenschap name van de oudercomponent:

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

Implementeer tweerichtingsgebeurtenisbinding tussen ouder- en kindcomponenten volgens het voorbeeld in de les.

Задание 2

Bouw voort op de vorige opdracht en maak tweerichtingsbinding voor de leeftijd van de gebruiker.