在URL更改时关闭角度模式 - 控制台中的错误

Nar*_*ana 1 modal-dialog angularjs angular-ui-bootstrap

我正在使用Angular bootstrap Modal来显示一个弹出窗口.单击textarea/browser back按钮外的退格键,我想取消弹出窗口并继续更改URL.默认行为是模态后面的页面发生变化,但模态仍然位于顶部.

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

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

它工作正常,但每当再次调用控制器时我都会看到错误.再次调用$ modalInstance.dismiss(),但在库中,它会抛出异常.

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

http://plnkr.co/UKXa6uFvy0ODHylMj28s

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

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

Iva*_*nZh 6

你的掠夺者似乎是对的.

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

此问题将在下一个UI Bootstrap版本中解决.

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