Dvikryptis įvykių surišimas Angular

Taip pat Angular galima sukurti dvikryptį įvykių surišimą abiejų komponentų: pagrindinio ir vaikinio. Sukurkime vaikiniame HTML šablone įvesties lauką su dvikrypčiu vartotojo vardo surišimu ir funkcija, keičiančia vardą:

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

Pereikime į mūsų vaikinį komponentą ir importuokime į jį dekoratorių @Input. Jis reikalingas darbui su įvestimis :

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

Toliau pririšame dekoratorių @Input prie vartotojo vardo. O dekoratorių @Output pririšame prie objekto userNameChange, kuris bus iškviečiamas funkcijoje 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);
  }
}

Dabar pereikime į pagrindinį komponentą ir pridėkime prie jo klasės savybę vardas:

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

O HTML šablone pagrindinio komponento atlikime dvikryptį savybės userName surišimą su savybės name reikšme iš pagrindinio komponento:

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

Įgyvendinkite dvikryptį įvykių surišimą pagrindinio ir vaikinio komponentų remdamiesi pamokoje pateiktu pavyzdžiu.

Задание 2

Remdamiesi ankstesne užduotimi, sukurkite dvikryptį vartotojo amžiaus surišimą.