⊗jsagPmCMCDE 67 of 97 menu

Andmete edastamine vanemakomponendis Angularis

Andmeid saab edastada lapskomponendist vanemakomponendisse. Seda tehakse sündmuste emissiooniga, kasutades spetsiaalset objekti EventEmitter ja meetodit emit. Lapskomponent emitteerib sündmusi, edastades koos sündmusega mõningaid andmeid, ja vanemakomponent püüab sündmusi kinni, saades andmeid vanemakomponendist.

Proovime seda praktikas. Selleks peame tegema mitmeid samme. Kõigepealt impordime oma lapskomponenti dekoraatori @Output ja klassi EventEmitter:

import { Component, Output, EventEmitter } from '@angular/core';

Nüüd teeme lapsklassis omaduse onData, mille väärtuseks on uus objekt EventEmitter, mis sisaldab stringi:

export class UserComponent { @Output() public onData = new EventEmitter<string>(); }

Nüüd teeme meetodi send, mille kutsumine emitteerib sündmust onData vanemakomponenti etteantud tekstiga:

export class UserComponent { @Output() public onData = new EventEmitter<string>(); send() { this.onData.emit('xxx'); } }

Lapskomponendi mallis teeme nupu, mille klõpsamisel kutsutakse välja meetod send:

<button (click)="send()"> send data </button>

Vanemakomponendis teeme meetodi onData, mida kutsutakse automaatselt välja, kui lapskomponendist emitteeritakse vastav sündmus. Meetodi parameetrisse satuvad edastatud andmed:

export class AppComponent { public onData(data: string) { console.log(data); } }

Vanemakomponendi mallis seome lapskomponendi sildi külge sündmuse:

<app-user (onData)="onData($event)"></app-user>

Lapskomponendis tehke kolm nuppu, mis emititeerivad erinevaid sündmusi. Püüdke emitteeritud sündmused kinni vanemakomponendis.

Eesti
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Me kasutame saidi toimimiseks, analüüsi ja personaliseerimiseks küpsiseid. Andmete töötlemine toimub vastavalt Privaatsuspoliitikale.
nõustu kõigega häälesta keeldu