检查 ng bootstrap modal 是否已经打开

Lev*_*Lev 4 angular-ui-bootstrap ng-bootstrap angular

如何检查模态窗口是否打开?

我定义了这样的属性

  modalInstance: NgbModalRef;
Run Code Online (Sandbox Code Playgroud)

并像这样实例化模态

 this.modalInstance = this.modalService.open(UpdateModalContent);
Run Code Online (Sandbox Code Playgroud)

我找不到任何本地财产,例如 this.modalReminderInstance.isOpen

sva*_*rog 6

当您设置modalInstance它时,它会返回一个承诺,而模式已启动,承诺设置为pending,当模式关闭时,承诺状态将设置为已解决或已拒绝。当承诺将解决/拒绝方法中的其中一个处理程序时,.then将运行。

var isModalOpen = false;
function openModal() {
    isModalOpen = true;
    modalInstance = $uibModal.open({...})
        .result.then(function () {
            // do something when resolved
        });
}
Run Code Online (Sandbox Code Playgroud)

另一种方法是利用回调方法.open为您提供

open 方法返回一个模态实例,一个具有以下属性的对象:

已打开(类型:promise)- 在下载内容模板并解析所有变量后打开模态时解析。

关闭(类型:promise) - 当模态关闭并且动画完成时解决。

var isModalOpen = false;

function openModal() {
    var modalInstance = $uibModal.open({...});

    modalInstance.opened.then(function () {
            isModalOpen = true;
        });

    modalInstance.closed.then(function () {
            isModalOpen = false;
        });
}
Run Code Online (Sandbox Code Playgroud)