4

我创建了一个 plunker 来重现问题: http ://plnkr.co/edit/sPPB0Cq0PUg1jmzzZtXh

它包含一个带有 angular-ui-bootsrap 的迷你 Angular js 应用程序。

  • index.html - 包含 js 的主 html 文件和一个 ng-view div。
  • other.html, main.html - 视图
  • app.js - 带有 app 声明的主要 Angular js 文件。
  • modal.js - 一些与模态相关的 js 东西。我用我自己的服务包装了 $modal,该服务通过显示模态响应广播的“show-modal”事件,并创建了一个指令,该指令作为属性附加到元素并发出/广播此事件。

问题:
我正在尝试使用 $modal 服务打开一个模态窗口。
它打开,然后我关闭它后,我无法再次打开它。
实际上,当再次尝试打开时,它似乎没有打开。但是当导航到角度应用程序中的另一个位置时,模态突然出现(或模态,如果你点击了很多次)。

我有点迷路了,文档并没有真正帮助我。
谁能检查一下并告诉我我做错了什么?

4

1 回答 1

3

在审查了模态确实有效的一些案例之后,我想我在
http://plnkr.co/edit/sPPB0Cq0PUg1jmzzZtXh之前放置的同一个 plunker 上找到了解决方案

您必须使用 $modalInstance 来 .close() 和 .dismiss() 模态。

文档建议可以使用注入的 $close $dismiss 函数,但使用这些函数给我带来了问题......

我保留了问题并在新文件中实施了解决方案,因此您可以查看两者(随意)。

- - 编辑 - -

如果所有失败 $scope.apply() (或 $rootScope.apply())
我在发出信号以打开模态后尝试 scope.apply 并且它成功地立即显示模态而不是在下一个周期(触发例如转到另一个页面)

于 2013-11-19T13:01:13.090 回答