⊗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
ვებსაიტის მუშაობის, ანალიტიკისა და პერსონალიზაციისთვის ვიყენებთ ქუქი-ფაილებს. მონაცემთა დამუშავება ხდება Კონფიდენციალურობის პოლიტიკის შესაბამისად.
ყველას მიღება პარამეტრები უარყოფა