⊗jsagPmCMCDE 67 of 97 menu

Přenos dat do rodičovské komponenty v Angular

Data lze přenášet z dceřiné komponenty do rodičovské. To se provádí vysíláním událostí pomocí speciálního objektu EventEmitter a metody emit. Dceřiná komponenta bude vysílat události a přenášet spolu s událostí nějaká data, zatímco rodičovská komponenta bude události zachytávat a získávat data z dceřiné komponenty.

Pojďme to vyzkoušet v praxi. K tomu potřebujeme udělat několik kroků. Nejprve do naší dceřiné komponenty importujeme dekorátor @Output a třídu EventEmitter:

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

Nyní ve dceřiné třídě vytvoříme vlastnost onData, jejíž hodnotou bude nový objekt EventEmitter, obsahující řetězec:

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

Nyní vytvoříme metodu send, jejíž volání bude vysílat událost onData do rodičovské komponenty s daným textem:

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

V šabloně dceřiné komponenty vytvoříme tlačítko, jehož kliknutím se bude volat metoda send:

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

V rodičovské komponentě vytvoříme metodu onData, která se bude automaticky volat, když z dceřiné komponenty bude vyslána odpovídající událost. Do parametru metody budou předána přenášená data:

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

V šabloně rodičovské komponenty připojíme k tagu dceřiné komponenty událost:

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

Ve dceřiné komponentě vytvořte tři tlačítka, vysílající různé události. Zachyťte vyslané události v rodičovské komponentě.

Čeština
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používáme soubory cookie pro fungování webu, analýzu a personalizaci. Zpracování údajů probíhá v souladu s Zásadami ochrany osobních údajů.
přijmout vše přizpůsobit odmítnout