首页 > 解决方案 > NgbModal - 打开子模态时将结果返回给父级

问题描述

我在名为 MyComponent 的组件中使用 NgbModal,根据用户操作打开一个模态后,我可能需要从第一个模态打开另一个模态。现在我可以在第一个模式关闭时返回一个值,如示例 https://medium.com/@izzatnadiri/how-to-pass-data-to-and-receive-from-ng-bootstrap-所示modals-916f2ad5d66e。有没有办法在打开的第二个模式中执行此操作,以便将结果返回给 MyComponent?

这是我从 MyComponent 打开第一个模态的代码:

        let options:NgbModalOptions = {
            size: 'lg',
            backdrop: 'static'
        };

        const modalRef = this.modalService.open(Modal1Component, options);

现在在 Modal1Component 组件中,当用户单击按钮时,我打开第二个名为 Modal2Component 的模式,如下所示:

        this.closeModal();
        let options:NgbModalOptions = {
            size: 'lg',
            backdrop: 'static'
        };
        const modalRef = this.modalService.open(Modal2Component, options);

如上面的代码所示,第一个模态 Modal1Component 在打开 Modal2Component 之前关闭。现在我想在 Modal2 关闭后将 Modal2 组件的结果返回给 MyComponent。可能吗?

标签: angularng-bootstrap

解决方案


您可以先打开第二个模态,获得它的result承诺,然后在关闭第一个模态时将其作为参数传递:

const modalRef = this.modalService.open(Modal2Component, options);
this.activeModal.close(modalRef.result);

演示


推荐阅读