检查ng bootstrap模式是否已打开

时间:2017-03-14 16:18:57

标签: angular angular-ui-bootstrap ng-bootstrap

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

我定义了一个像这样的属性

  modalInstance: NgbModalRef;

并像这样实例化模态

 this.modalInstance = this.modalService.open(UpdateModalContent);

我找不到像this.modalReminderInstance.isOpen

这样的本地属性

1 个答案:

答案 0 :(得分:4)

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

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

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

  

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

     

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

     

关闭(类型:保证) - 在关闭模态并完成动画时解析。

var isModalOpen = false;

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

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

    modalInstance.closed.then(function () {
            isModalOpen = false;
        });
}