⊗jsagPmCMCDE 67 of 97 menu

Duomenų perdavimas į pagrindinį komponentą Angular

Galima perduoti duomenis iš vaikinio komponento į pagrindinį. Tai daroma išmetant įvykius naudojant specialųjį objektą EventEmitter ir metodą emit. Vaikinis komponentas išmes įvykius, kartu perduodant su įvykiu tam tikrus duomenis, o pagrindinis komponentas gaudys įvykius, gaunant duomenis iš pagrindinio komponento.

Pabandykime praktiškai. Tam mums reikia atlikti keletą žingsnių. Pirmiausia į mūsų vaikinį komponentą importuokime dekoratorių @Output ir klasę EventEmitter:

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

Dabar vaikinėje klasėje sukurkime savybę onData, kurios reikšmė bus naujas objektas EventEmitter, talpinantis eilutę:

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

Dabar sukurkime metodą send, kurio iškvietimas bus išmetantis įvykį onData į pagrindinį komponentą su nurodytu tekstu:

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

Vaikinio komponento šablone sukurkime mygtuką, paspaudus ant kurio bus iškviečiamas metodas send:

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

Pagrindiniame komponente sukurkime metodą onData, kuris bus automatiškai iškviečiamas, kai iš vaikinio komponento bus išmestas atitinkamas įvykis. Į metodo parametrą pateks perduoti duomenys:

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

Pagrindinio komponento šablone pririškime prie vaikinio komponento žymės įvykį:

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

Vaikiniame komponente sukurkite tris mygtukus, išmetančius įvairius įvykius. Pagaukite išmestus įvykius pagrindiniame komponente.

Lietuvių
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mes naudojame slapukus svetainės veikimui, analizei ir personalizavimui. Duomenų apdorojimas vyksta pagal Privatumo politiką.
priimti visus nustatyti atšaukti