⊗jsagPmCMCDE 67 of 97 menu

Overførsel af data til forælderkomponenten i Angular

Det er muligt at overføre data fra en barnkomponent til en forælderkomponent. Dette gøres ved at udsende begivenheder ved hjælp af et specielt objekt EventEmitter og metoden emit. Barnkomponenten vil udsende begivenheder og overføre nogle data sammen med begivenheden, mens forælderkomponenten vil fange begivenhederne og modtage dataene fra barnkomponenten.

Lad os prøve det i praksis. For at gøre dette skal vi gennemføre en række trin. Til at starte med skal vi i vores barnkomponent importere dekoratøren @Output og klassen EventEmitter:

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

Nu skal vi i barnklassen lave en egenskab onData, hvis værdi vil være et nyt objekt EventEmitter, der indeholder en streng:

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

Nu laver vi metoden send, hvis kald vil udsende begivenheden onData til forælderkomponenten med den givne tekst:

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

I barnkomponentens skabelon laver vi en knap, der ved klik vil kalde metoden send:

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

I forælderkomponenten laver vi metoden onData, som automatisk vil blive kaldt, når den tilsvarende begivenhed udsendes fra barnkomponenten. Dataene, der overføres, vil blive sendt til metodens parameter:

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

I forælderkomponentens skabelon binder vi begivenheden til barnkomponentens tag:

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

I barnkomponenten skal du lave tre knapper, der udsender forskellige begivenheder. Fang de udsendte begivenheder i forælderkomponenten.

Dansk
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDeutschΕλληνικά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
Vi bruger cookies til webstedets funktion, analyse og personalisering. Behandling af data foregår i henhold til Fortrolighedspolitikken.
accepter alle tilpas afvis