Dvosmerno povezovanje dogodkov v Angular
V Angularju je mogoče tudi vzpostaviti dvosmerno povezovanje dogodkov obeh komponent: starševske in podrejene. Naredimo v podrejenem HTML predlogu vnosno polje z dvosmerno povezavo uporabniškega imena in funkcijo, ki spreminja ime:
<input [ngModel]="userName" (ngModelChange)="onNameChange($event)" />
Pojdimo v naš podrejeni komponent in
vanj uvozimo dekorator @Input.
Potreben je za delo z vnosi:
import { Component, Input, Output, EventEmitter } from '@angular/core';
Nato povežemo dekorator @Input
z uporabniškim imenom. Dekorator @Output
pa povežemo z objektom userNameChange,
ki se bo klical v funkciji onNameChange:
export class UserComponent {
@Input() userName: string = '';
@Output() userNameChange = new EventEmitter<string>();
onNameChange(model: string) {
this.userName = model;
this.userNameChange.emit(model);
}
}
Zdaj pojdimo v glavni komponent in dodajmo njegovemu razredu lastnost ime:
export class AppComponent {
name: string = 'alex';
}
V HTML predlogu starševskega komponenta
pa izvedemo dvosmerno povezavo lastnosti
userName z vrednostjo lastnosti
name starševskega komponenta:
<user-data [(userName)]="name"></user-data>
<p>Izbrali ste ime: {{ name }}</p>
Implementirajte dvosmerno povezovanje dogodkov starševskega in podrejenega komponenta v skladu s primerom iz lekcije.
Na podlagi prejšnje naloge naredite dvosmerno povezavo starosti uporabnika.