⊗jsagPmCMCDE 67 of 97 menu

Prosleđivanje podataka u roditeljski komponent u Angularu

Podaci se mogu proslediti iz podređenog komponenta u roditeljski. Ovo se postiže emitovanjem događaja pomoću specijalnog objekta EventEmitter i metode emit. Podređeni komponent će emitovati događaje, prosleđujući zajedno sa događajem određene podatke, a roditeljski komponent će hvatali događaje, dobijajući podatke iz podređenog komponenta.

Hajde da probamo u praksi. Za ovo nam je potrebno da odradimo niz koraka. Za početak u naš podređeni komponent importujemo dekorator @Output i klasu EventEmitter:

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

Sada u podređenoj klasi napravićemo svojstvo onData, čija će vrednost biti novi objekat EventEmitter, koji sadrži string:

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

Sada napravićemo metod send, čiji poziv će emitovati događaj onData u roditeljski komponent sa zadatim tekstom:

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

U templejtu podređenog komponenta napravićemo dugme, na čiji klik će se pozivati metod send:

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

U roditeljskom komponentu napravićemo metod onData, koji će se automatski pozivati kada iz podređenog komponenta bude emitovan odgovarajući događaj. U parametar metoda će upasti prosleđeni podaci:

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

U templejtu roditeljskog komponenta povezaćemo na tag podređenog komponenta događaj:

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

U podređenom komponentu napravite tri dugmeta, koja emituju različite događaje. Uhvatite emitovane događaje u roditeljskom komponentu.

Srpski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Koristimo kolačiće za rad sajta, analitiku i personalizaciju. Obrada podataka se vrši u skladu sa Politikom privatnosti.
prihvati sve podesi odbij