我正在使用Angular bootstrap Modal来显示弹出窗口。单击textarea / browser back按钮外的退格键,我想取消弹出窗口并继续更改URL。默认行为是模态后面的页面发生变化,但模态保持在最顶层。
在模态实例的控制器中,我添加了一个
$ scope。$ on('$ routeChangeStart',function(){...});
它可以工作,但是每当再次调用控制器时我都会看到错误。再次调用$ modalInstance.dismiss(),但在库中,它会抛出异常。
这是带有代码和repro步骤的plunkr。观察浏览器控制台是否有错误。
http://plnkr.co/UKXa6uFvy0ODHylMj28s
我做错了什么,或者是modal.js中的错误?
编辑:我认为我的控制器范围不对。为什么AddCtrl的$ scope。$ on(当我导航到MainCtrl时会调用'$ routeChangeStart'?
答案 0 :(得分:6)
你的傻瓜似乎是对的。
这里有$ modal服务错误:关闭模态窗口后,模态范围仍然存在。所以模态范围继续监听$routeChangeStart
,我认为dismiss()
的双重调用会导致错误。
此问题将在下一个UI Bootstrap版本中解决。
我更新并评论您的代码,希望此帮助 - http://plnkr.co/edit/daf8dP?p=info
答案 1 :(得分:0)
当路线更改/后退按钮点击here时,我有一个全面的解决方案来解除角度模态。