⊗jsagPmCMCDE 67 of 97 menu

Prenos dát do nadradenej komponenty v Angular

Dáta je možné prenášať z podradenej komponenty do nadradenej. To sa robí vyžarovaním udalostí pomocou špeciálneho objektu EventEmitter a metódy emit. Podradená komponenta bude vyžarovať udalosti, pričom spolu s udalosťou prenesie nejaké dáta, a nadradená komponenta bude chytať udalosti, získavajúc dáta z nadradenej komponenty.

Vyskúšajme si to v praxi. Na to potrebujeme urobiť niekoľko krokov. Najprv do našej podradenej komponenty importujeme dekorátor @Output a triedu EventEmitter:

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

Teraz v podradenej triede vytvoríme vlastnosť onData, ktorej hodnotou bude nový objekt EventEmitter, obsahujúci reťazec:

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

Teraz vytvorme metódu send, ktorej volanie bude vyžarovať udalosť onData do nadradenej komponenty so zadaným textom:

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

V šablóne podradenej komponenty vytvorme tlačidlo, po kliknutí na ktoré sa bude volať metóda send:

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

V nadradenej komponente vytvorme metódu onData, ktorá sa bude automaticky volať, keď z podradenej komponenty bude vyžarená príslušná udalosť. Do parametra metódy budú prechádzať prenesené dáta:

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

V šablóne nadradenej komponenty previažme na tag podradenej komponenty udalosť:

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

V podradenej komponente vytvorte tri tlačidlá, vyžarujúce rôzne udalosti. Zachyťte vyžarené udalosti v nadradenej komponente.

Slovenčina
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používame cookies na fungovanie stránky, analýzu a personalizáciu. Spracúvanie údajov prebieha v súlade s Politikou ochrany osobných údajov.
prijať všetky nastaviť odmietnuť