Divpusējā notikumu piesaiste Angular
Angular ir iespējams izveidot arī divpusēju notikumu piesaisti abiem komponentiem: vecāka un bērna. Izveidosim bērna HTML veidnē ievades lauku ar divpusēju lietotājvārda piesaisti un funkciju, kas maina vārdu:
<input [ngModel]="userName" (ngModelChange)="onNameChange($event)" />
Pāriesim uz mūsu bērna komponentu un
importēsim tajā dekoratoru @Input.
Tas ir nepieciešams darbam ar ievadiem:
import { Component, Input, Output, EventEmitter } from '@angular/core';
Tālāk piesaistām dekoratoru @Input
lietotājvārdam. Un dekoratoru @Output
piesaistām objektam userNameChange,
kas tiks izsaukts funkcijā onNameChange:
export class UserComponent {
@Input() userName: string = '';
@Output() userNameChange = new EventEmitter<string>();
onNameChange(model: string) {
this.userName = model;
this.userNameChange.emit(model);
}
}
Tagad pārejam uz galveno komponentu un pievienojam tā klasei īpašību vārds:
export class AppComponent {
name: string = 'alex';
}
Un vecāka komponenta HTML veidnē
veicam divpusēju īpašības userName
piesaisti ar vecāka komponenta īpašības
name vērtību:
<user-data [(userName)]="name"></user-data>
<p>Jūs izvēlējāties vārdu: {{ name }}</p>
Implementējiet divpusēju notikumu piesaisti vecāka un bērna komponentiem saskaņā ar nodarbībā doto piemēru.
Balstoties uz iepriekšējo uzdevumu, izveidojiet divpusēju lietotāja vecuma piesaisti.