Двубаковая прывязка падзей у Angular
Таксама ў Angular можна зрабіць двубаковую прывязку падзей абодвух кампанентаў: бацькоўскага і даччынага. Давайце зробім у даччыным HTML-шаблоне інпут з двубаковой прывязкай імя карыстальніка і функцыі, якая мяняе імя:
<input [ngModel]="userName" (ngModelChange)="onNameChange($event)" />
Пераходзім у наш даччыны кампанент і
імпартуем у яго дэкаратар @Input.
Ён патрэбны для работы з інпутамі :
import { Component, Input, Output, EventEmitter } from '@angular/core';
Далей прывязваем дэкаратар @Input
да імя карыстальніка. А дэкаратар @Output
прывязваем да аб'екта userNameChange,
які будзе выклікацца ў функцыі onNameChange:
export class UserComponent {
@Input() userName: string = '';
@Output() userNameChange = new EventEmitter<string>();
onNameChange(model: string) {
this.userName = model;
this.userNameChange.emit(model);
}
}
Цяпер пераходзім у галоўны кампанент і дадаем да яго класа ўласцівасць імя:
export class AppComponent {
name: string = 'alex';
}
А ў HTML-шаблоне бацькоўскага кампанента
выконваем двубаковую прывязку ўласцівасці
userName са значэннем уласцівасці
name бацькоўскага кампанента:
<user-data [(userName)]="name"></user-data>
<p>You choose name: {{ name }}</p>
Рэалізуйце двубаковую прывязку падзей бацькоўскага і даччынага кампанентаў згодна з прыведзеным у ўроку прыкладам.
На аснове папярэдняй задачы зрабіце двубаковую прывязку ўзросту карыстальніка.