NgbModal-打开子模态时将结果返回给父级

时间:2019-06-18 17:11:26

标签: angular ng-bootstrap

我在名为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。有可能吗?

1 个答案:

答案 0 :(得分:0)

您可以先打开第二个模式,获得其result承诺,并在关闭第一个模式时将该参数作为参数传递:

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

Demo