⊗jsagPmCMCDE 67 of 97 menu

Posredovanje podatkov v starševsko komponento v Angular

Podatke je mogoče posredovati iz podrejene komponente v starševsko. To naredimo z oddajanjem dogodkov s pomočjo posebnega objekta EventEmitter in metode emit. Podrejena komponenta bo oddajala dogodke in hkrati z dogodkom posredovala nekatere podatke, starševska komponenta pa bo lovila dogodke in prejemala podatke iz starševske komponente.

Poskusimo v praksi. Za to moramo narediti vrsto korakov. Najprej v našo podrejeno komponento uvozimo dekorator @Output in razred EventEmitter:

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

Zdaj v podrejenem razredu naredimo lastnost onData, katere vrednost bo nov objekt EventEmitter, ki vsebuje niz:

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

Zdaj naredimo metodo send, katere klic bo oddal dogodek onData v starševsko komponento z danim besedilom:

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

V predlogi podrejene komponente naredimo gumb, ob kliku na katerega se bo klicala metoda send:

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

V starševski komponenti naredimo metodo onData, ki se bo samodejno klicala, ko iz podrejene komponente bo oddan ustrezen dogodek. V parameter metode bodo prišli posredovani podatki:

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

V predlogi starševske komponente vežimo na oznako podrejene komponente dogodek:

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

V podrejeni komponenti naredite tri gumbe, ki oddajajo različne dogodke. Ujemite oddane dogodke v starševski komponenti.

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
Za delovanje spletnega mesta, analitiko in personalizacijo uporabljamo piškotke. Obdelava podatkov poteka v skladu s Politiko zasebnosti.
sprejmi vse nastavi zavrni