⊗jsagPmCMCDE 67 of 97 menu

Предаване на данни към родителския компонент в Angular

Можете да предавате данни от детски компонент към родителски. Това се прави чрез излъчване на събития с помощта на специален обект EventEmitter и метод emit. Детският компонент ще излъчва събития, предавайки заедно със събитието някакви данни, а родителският компонент ще улавя събитията, получавайки данни от детския компонент.

Нека опитаме на практика. За това трябва да изпълним няколко стъпки. Първо, в нашия детски компонент импортираме декоратора @Output и класа EventEmitter:

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

Сега в детския клас създаваме свойство onData, чиято стойност ще бъде нов обект EventEmitter, съдържащ низ:

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

Сега създаваме метод send, чието извикване ще излъчва събитие onData към родителския компонент с даден текст:

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

В темплейта на детския компонент създаваме бутон, при кликване на който ще се извиква методът send:

<button (click)="send()"> изпрати данни </button>

В родителския компонент създаваме метод onData, който автоматично ще се извиква, когато от детския компонент бъде излъчено съответното събитие. В параметъра на метода ще постъпват предадените данни:

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

В темплейта на родителския компонент свързваме към тага на детския компонент събитието:

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

В детския компонент създайте три бутона, които излъчват различни събития. Уловете излъчените събития в родителския компонент.

Български
AfrikaansAzərbaycanবাংলাБеларускаяČeštinaDanskDeutschΕλληνικά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
Ние използваме бисквитки за работата на сайта, анализ и персонализация. Обработката на данни се извършва в съответствие с Политика за поверителност.
приемам всички настройки отхвърляне