【问题标题】:Dismiss angular modal on URL change - errors in console在 URL 更改时关闭角度模式 - 控制台中的错误
【发布时间】:2014-04-12 17:55:39
【问题描述】:

我正在使用 Angular 引导模式来显示一个弹出窗口。单击文本区域/浏览器后退按钮外的退格键时,我想取消弹出窗口并继续更改 url。默认行为是模态背后的页面发生变化,但模态仍然在顶部。

在模态实例的控制器中,我添加了一个

$scope.$on('$routeChangeStart', function() {...} );

它可以工作,但是每当再次调用控制器时我都会看到错误。 $modalInstance.dismiss() 被再次调用,但是在库内部,它抛出了一个异常。

这是带有代码和重现步骤的 plunkr。观察浏览器控制台是否有错误。

http://plnkr.co/UKXa6uFvy0ODHylMj28s

是我做错了什么,还是 modal.js 中的错误?

编辑:我认为我的控制器范围不正确。为什么导航到 MainCtrl 时会调用 AddCtrl 的 $scope.$on('$routeChangeStart'?

【问题讨论】:

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


    【解决方案1】:

    当路由更改/返回按钮单击here 时,我有一个关闭 Angular 模态的综合解决方案。

    【讨论】:

      【解决方案2】:

      你的笨蛋似乎是对的。

      这里有 $modal 服务错误:关闭模态窗口后,模态范围仍然存在。所以模态范围继续听$routeChangeStart,我认为dismiss()的双重调用会导致错误。

      这个问题将在下一个 UI Bootstrap 版本中解决。

      我更新并评论您的代码,希望对您有所帮助 - http://plnkr.co/edit/daf8dP?p=info

      【讨论】:

        猜你喜欢
        • 2016-04-12
        • 2015-04-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-06-05
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多