⊗jsagPmCMCDE 67 of 97 menu

Transmisión de datos al componente padre en Angular

Se pueden transmitir datos desde un componente hijo a un componente padre. Esto se realiza emitiendo eventos usando un objeto especial EventEmitter y el método emit. El componente hijo emitirá eventos, transmitiendo algunos datos junto con el evento, y el componente padre capturará los eventos, obteniendo los datos del componente hijo.

Probemos esto en la práctica. Para ello necesitamos realizar una serie de pasos. Primero, en nuestro componente hijo importemos el decorador @Output y la clase EventEmitter:

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

Ahora en la clase hija creemos una propiedad onData, cuyo valor será un nuevo objeto EventEmitter, que contendrá una cadena:

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

Ahora creemos un método send, cuya llamada emitirá un evento onData al componente padre con el texto dado:

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

En la plantilla del componente hijo creemos un botón, al hacer clic en el cual se llamará al método send:

<button (click)="send()"> enviar datos </button>

En el componente padre creemos un método onData, que se llamará automáticamente cuando se emita el evento correspondiente desde el componente hijo. En el parámetro del método llegarán los datos transmitidos:

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

En la plantilla del componente padre vincularemos al tag del componente hijo el evento:

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

En el componente hijo, crea tres botones que emitan diferentes eventos. Captura los eventos emitidos en el componente padre.

Español
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Usamos cookies para el funcionamiento del sitio, análisis y personalización. El procesamiento de datos se realiza de acuerdo con la Política de privacidad.
aceptar todas configurar rechazar