[[oktatas:web:angular:angular_komponensek_kommunikacioja|< Angular komponensek kommunikációja]] ====== Angular - Input és Output dekorátorok ====== * **Szerző:** Sallai András * Copyright (c) Sallai András, 2022 * Licenc: [[https://creativecommons.org/licenses/by-sa/4.0/|CC Attribution-Share Alike 4.0 International]] * Web: https://szit.hu ===== Bevezetés ===== Az @Input és @Output dekorátorok segítéségével függvényeket hívhatunk egy másik komponensben, ha a két komponens szülő-gyermek viszonyban van, és nem az AppComponet-ben van a hívandó függvény. ===== Szülőtől a gyermek felé ===== Legyen egy weboldal amely termékeket tartalmaz. ng generate component emps ng generate component empdet //... export class EmployeesComponent implements OnInit { employeeName = "Erős István"; constructor() { } ngOnInit(): void { } }

employees works!

import { Component, Input, OnInit } from '@angular/core'; //... export class EmpldetComponent implements OnInit { @Input() employeeName = ''; constructor() { } ngOnInit(): void { } }

empldet works!

Név: {{employeeName}}
Teljes: import { Component, OnInit } from '@angular/core'; @Component({ selector: 'app-emps', templateUrl: './emps.component.html', styleUrls: ['./emps.component.css'] }) export class EmpsComponent implements OnInit { actName = "Erős István"; constructor() { } ngOnInit(): void { } }

emps works!

import { Component, Input, OnInit } from '@angular/core'; @Component({ selector: 'app-empdet', templateUrl: './empdet.component.html', styleUrls: ['./empdet.component.css'] }) export class EmpdetComponent implements OnInit { @Input() employeeName = ''; constructor() { } ngOnInit(): void { } }

empdet works!

Név: {{employeeName}}
===== Gyermektől a szülő felé ===== import { Component, OnInit } from '@angular/core'; @Component({ selector: 'app-emps', templateUrl: './emps.component.html', styleUrls: ['./emps.component.css'] }) export class EmpsComponent implements OnInit { employeeArray = [ 'Kerek György', 'Rendes Imre' ]; constructor() { } ngOnInit(): void { } addEmployee(newEmployee: string) { this.employeeArray.push(newEmployee); } }

emps works!

  • {{empl}}
import { Component, EventEmitter, OnInit, Output } from '@angular/core'; @Component({ selector: 'app-empdet', templateUrl: './empdet.component.html', styleUrls: ['./empdet.component.css'] }) export class EmpdetComponent implements OnInit { @Output() newEmployeeEvent = new EventEmitter(); constructor() { } ngOnInit(): void { } addNewEmployee(value: string) { this.newEmployeeEvent.emit(value); } }

empdet works!


===== Forrás ===== * https://angular.io/guide/inputs-outputs (2022)