Tweekantige gebeurtenisbinding in Angular

In Angular kan ons ook 'n tweekantige binding van gebeure van albei komponente maak: die ouer en die kind. Kom ons maak in die kind se HTML-sjabloon 'n invoerveld met tweekantige binding van die gebruikersnaam en 'n funksie wat die naam verander:

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

Laat ons na ons kinderkomponent gaan en die dekorateur @Input daarin invoer. Dit is nodig om met invoere te werk:

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

Vervolgens bind ons die dekorateur @Input aan die gebruikersnaam. En die dekorateur @Output bind ons aan die voorwerp userNameChange, wat in die funksie onNameChange aangeroep sal word:

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);
  }
}

Laat ons nou na die hoofkomponent gaan en die eienskap naam by sy klas voeg:

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

En in die HTML-sjabloon van die ouerkomponent voer ons tweekantige binding van die eienskap userName uit met die waarde van die eienskap name van die ouerkomponent:

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

Implementeer tweekantige binding van gebeure van die ouer- en kinderkomponente volgens die voorbeeld wat in die les gegee word.

Задание 2

Maak op grond van die vorige taak 'n tweekantige binding van die gebruiker se ouderdom.