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

标签 angularjs modal-dialog angular-ui-bootstrap

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

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

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

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

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

    最佳答案

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

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

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

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

    - - 编辑 - -

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

    关于angularjs + bootstrap ui + $modal -> 只在第一次显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19997616/

    相关文章:

    javascript - 将过滤应用于层次结构

    javascript - 如何从 Angular 应用程序中的 gulp 任务访问 rootPath 集

    angularjs - 检查 Angular js中的字符串是否以字母开头?

    angularjs - Angular-ui/ Bootstrap : pagination not rendered (missing styles? )

    angularjs - Grails Asset Pipeline 没有给出正确的 Javascript 顺序

    javascript - Angular JS - 无法将对象插入范围数组

    javascript - 如何修复 Bootstrap 3 Modal + CKEditor 4.4 空对话框

    jquery - 如何使用 Remodal 制作确认模式

    javascript - 一次展开多个 Accordion 组

    css - 在选择或页面更改时使用 UI Bootstrap 自动关闭导航栏