检查$ modal是否打开类似于$ dialog.isOpen

时间:2015-05-27 11:27:41

标签: angularjs modal-dialog migration angular-bootstrap

我从AngularJS 1.1.15迁移到1.3.15,我目前的问题是使用$ modal而不是$ dialog。

如果有任何有关迁移的有用链接,我们将不胜感激:)我目前正在处理每个错误修复。

至于我目前的问题: 我以前的代码看起来像:

var msgBox = $dialog.dialog({ ... });
msgBox.open().then(......);

我把它改成了

var msgBox = $modal.open(...);
msgBox.opened.then(......);

所以现在我遇到的问题是有一个IF:

if (msgBox && msgBox.isOpen())

如何使用$ modal实现它?从documentation here我看不到isOpen的替代品。

在大多数stackoverflow问题上,我看到人们建议使用jQuery,但它非常混乱,我宁愿避免这种情况。

感谢您的帮助

1 个答案:

答案 0 :(得分:3)

我不知道任何“开箱即用”的解决方案,所以我通过检查$modal.result承诺中的状态来检查$ modal是打开还是关闭。他们在这里:

  • 待定(0)
  • 已解决(1)
  • 拒绝(2)

你可以检查模态是否像这样打开:

$modal.result.$$state.status === 1;

关闭后,status会更改为2

希望它有所帮助。