Necesito obtener datos del componente secundario. Mi componente secundario tiene un formulario que está en popu. ¿Cómo puedo pasar todos los detalles al componente principal? el archivo ts de mi componente principal es
import { Component, OnInit } from '@angular/core'; import {MdDialog, MdDialogRef} from '@angular/material'; @Component({ selector: 'app-vehicle-relocate', templateUrl: './vehicle-relocate.component.html', styleUrls: ['./vehicle-relocate.component.css'], }) export class VehicleRelocateComponent implements OnInit { lat: number = 11.074529; lng: number = 78.003917; zoom: number = 14; ngOnInit() { } selectedOption: string; constructor(public dialog: MdDialog) {} openDialog() { let dialogRef = this.dialog.open(); dialogRef.afterClosed().subscribe(result => { this.selectedOption = result; }); } }Mi componente secundario está en el componente principal
import { Component, OnInit, Input } from '@angular/core'; import {MdDialog, MdDialogRef} from '@angular/material'; @Component({ selector: 'app-relocate-form', templateUrl: './relocate-form.component.html', styleUrls: ['./relocate-form.component.css'] }) export class RelocateFormComponent implements OnInit { constructor(public dialogRef: MdDialogRef<RelocateFormComponent>) {} @Input() title:string; ngOnInit() { } }Puede agregar una Output a su componente secundario. Por ejemplo: @Output() notifySubmit : EventEmitter<any> = new EventEmitter<any>() (puedes poner el tipo que quieras si no quieres 'ninguno').
Luego, cuando envíe el formulario en su componente secundario, debe notificar al padre con la Output :
this.notifySubmit.emit(myValues) Ahora debe recibir el evento en el componente principal. Cuando llama a su RelocateFormComponent desde VehicleRelocateComponent , necesita pasar una función a Output .
<app-relocate-form (notifySubmit)="myFunction($event)" ... ></app-relocate-form> myFunction($event) tiene que estar en el componente principal. El parámetro $event es igual a lo que envió con this.notifySubmit.emit(myValues) .