NgbModal - Return 打开子模式时给父级的结果

NgbModal - Return result to parent when opening sub Modal

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

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

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

Demo