⊗jsagPmCMCDE 67 of 97 menu

Transmission de données au composant parent dans Angular

Il est possible de transmettre des données d'un composant enfant à un composant parent. Cela se fait en émettant des événements à l'aide d'un objet spécial EventEmitter et de la méthode emit. Le composant enfant émettra des événements, en transmettant avec l'événement certaines données, et le composant parent attrapera les événements, en recevant les données du composant enfant.

Essayons cela en pratique. Pour cela, nous devons effectuer une série d'étapes. Pour commencer, dans notre composant enfant, importons le décorateur @Output et la classe EventEmitter :

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

Maintenant, dans la classe enfant, créons une propriété onData, dont la valeur sera un nouvel objet EventEmitter, contenant une chaîne de caractères :

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

Maintenant, créons une méthode send, dont l'appel émettra un événement onData vers le composant parent avec le texte donné :

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

Dans le template du composant enfant, créons un bouton, dont le clic appellera la méthode send :

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

Dans le composant parent, créons une méthode onData, qui sera automatiquement appelée lorsque le composant enfant émettra l'événement correspondant. Les données transmises arriveront dans le paramètre de la méthode :

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

Dans le template du composant parent, relions à la balise du composant enfant l'événement :

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

Dans le composant enfant, créez trois boutons, émettant différents événements. Attrapez les événements émis dans le composant parent.

azbydeenesfrkakkptruuz