Двосмерно поврзување на настани во Angular
Исто така во Angular може да се направи двосмерно поврзување на настани на двата компоненти: родителскиот и детскиот. Ајде да направиме во детскиот HTML-шаблон input со двосмерно поврзување на корисничкото име и функција, која го менува името:
<input [ngModel]="userName" (ngModelChange)="onNameChange($event)" />
Да преминеме во нашиот детски компонент и
да го импортираме во него декораторот @Input.
Потребен е за работа со inputs :
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>
Имплементирајте двосмерно поврзување на настани на родителскиот и детскиот компонент според дадениот пример во лекцијата.
Врз основа на претходната задача направете двосмерно поврзување на возраста на корисникот.