angularjs + bootstrap ui + $ modal - >仅在第一次显示

时间:2013-11-15 09:25:55

标签: angularjs modal-dialog angular-ui-bootstrap

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

它包含一个带角度-ui-bootsrap的迷你角度js应用程序。

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

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

我有点迷失,文档并没有真正帮助我 任何人都可以检查出来并告诉我我做错了什么?

1 个答案:

答案 0 :(得分:3)

在审查了模态确实有效的一些案例之后,我想我在之前提出的同一个问题上得到了一个解决方案。 http://plnkr.co/edit/sPPB0Cq0PUg1jmzzZtXh

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

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

我按原样保留问题并在新文件中实施解决方案,以便您可以(根据您的意愿)查看两者。

---编辑---

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