Estoy usando ngb modal para editar mi formulario. esta es mi función de botón de edición
editCheckin(data: CheckInModel, details: any) { console.log(data); this.modalService.open(details, { ariaLabelledBy: 'modal-basic-title', size: 'xl', backdrop: 'static' }).result.then((id) => { }, (reason) => { });} Cuando hago clic en el botón Editar, la función anterior llama y carga la ventana emergente correctamente. este es mi boton de editar
<button mat-stroked-button type="button" class="action-btn" (click)="editCheckin(element, details)"> <i class="fas fa-pencil-alt"></i> </button>editar objeto pasado correctamente. El resultado de console.log (datos) es como el siguiente
ahora necesito que la consola registre datos en mi ventana emergente. como lo paso.
Puede editar la instancia del componente directamente haciendo algo como
en tu modal agregas una propiedad:
data: CheckInModely cuando llamas al modal simplemente haces:
openModal() { const modalRef = this.modalService.open(ModalContentComponent); modalRef.componentInstance.data = this.data; }En mi aplicación, tengo un servicio personalizado que envuelve el servicio modal ngb:
export class ModalService { constructor(private modalService: NgbModal) {} open<C, T>(content: unknown, config?: T, options?: NgbModalOptions): ModalRef<C> { const modal = this.modalService.open(content, { centered: true, backdrop: true, size: 'm', ...options, }); Object.assign(modal.componentInstance, config); return modal; } }De esta manera, simplemente puedo llamar a mi modal con mi servicio y pasar los datos:
const ref = this.modalService.open<GenericModalComponent, GenericModalData>( GenericModalComponent, { data: 'this will be passed to the modal instance' } );Lo importante es que el modal tenga una propiedad definida con el mismo nombre (aquí estaría data)
más Aquí