Tobinding af begivenheder i Angular

I Angular kan man også lave tobinding af begivenheder for begge komponenter: forælder og barn. Lad os lave et inputfelt i barnets HTML-skabelon med tobinding af brugernavn og en funktion, der ændrer navnet:

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

Lad os gå til vores barnkomponent og importere dekoratoren @Input i den. Den er nødvendig for at arbejde med inputs :

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

Derefter binder vi dekoratoren @Input til brugernavnet. Og dekoratoren @Output binder vi til objektet userNameChange, som vil blive kaldt 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);
  }
}

Lad os nu gå til hovedkomponenten og tilføje egenskaben navn til dens klasse:

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

Og i forælderkomponentens HTML-skabelon udfører vi tobinding af egenskaben userName med værdien af egenskaben name i forælderkomponenten:

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

Implementer tobinding af begivenheder for forælder- og barnkomponenter i henhold til eksemplet vist i lektionen.

Задание 2

Baseret på den forrige opgave, lav tobinding af brugerens alder.