⊗jsagPmCMCDE 67 of 97 menu

Tiedonsiirto vanhempakomponenttiin Angularissa

Tietoja voidaan siirtää lapsikomponentista vanhempakomponenttiin. Tämä tehdään lähettämällä tapahtumia erityisellä kohteella EventEmitter ja metodilla emit. Lapsikomponentti lähettää tapahtumia, siirtäen mukanaan tapahtuman yhteydessä tiettyjä tietoja, ja vanhempakomponentti kaappaa tapahtumat, saaden tiedot vanhempakomponentista.

Kokeillaan käytännössä. Tätä varten meidän on suoritettava useita vaiheita. Aluksi lapsikomponenttiimme tuomme dekoraattorin @Output ja luokan EventEmitter:

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

Nyt lapsiluokassa teemme ominaisuuden onData, jonka arvoksi tulee uusi kohde EventEmitter, sisältäen merkkijonon:

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

Nyt teemme metodin send, jonka kutsu lähettää tapahtuman onData vanhempakomponenttiin annetulla tekstillä:

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

Lapsikomponentin templaatissa teemme painikkeen, jonka klikkauksella kutsutaan metodia send:

<button (click)="send()"> lähetä data </button>

Vanhempakomponentissa teemme metodin onData, jota kutsutaan automaattisesti, kun lapsikomponentista lähetetään vastaava tapahtuma. Metodin parametriin tulevat lähetetyt tiedot:

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

Vanhempakomponentin templaatissa sidomme lapsikomponentin tagiin tapahtuman:

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

Lapsikomponentissa tee kolme painiketta, jotka lähettävät erilaisia tapahtumia. Kaappaa lähetetyt tapahtumat vanhempakomponentissa.

Suomi
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Käytämme evästeitä verkkosivuston toiminnalle, analytiikalle ja personoinnille. Tietojen käsittely tapahtuu Tietosuojakäytännön mukaisesti.
hyväksy kaikki mukauta hylkää