Toveisbinding av hendelser i Angular

I Angular kan man også opprette toveis binding av hendelser fra begge komponenter: foreldre- og barnekomponenten. La oss opprette en input i barnekomponentens HTML-mal med toveis binding av brukernavn og en funksjon som endrer navnet:

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

La oss gå til barnekomponenten vår og importere dekoratoren @Input. Den er nødvendig for å arbeide med inputs:

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

Deretter binder vi dekoratoren @Input til brukernavnet. Og dekoratoren @Output binder vi til objektet userNameChange, som vil bli kalt i funksjonen 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);
  }
}

La oss nå gå til hovedkomponenten og legge til en navn-egenskap til dens klasse:

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

Og i HTML-malen til foreldrekomponenten utfører vi toveis binding av egenskapen userName med verdien av egenskapen name i foreldrekomponenten:

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

Implementer toveis binding av hendelser mellom foreldre- og barnekomponenter i henhold til eksemplet vist i leksjonen.

Задание 2

Basert på forrige oppgave, lag en toveis binding for brukerens alder.