// show mymodal
// register an event to route to a different page once modal is closed
$('#myModal').on('hide.bs.modal', function() {
if ($location.path() == '/') {
$location.path('/ser/mynewpath');
alert("fired"); // just to check the event was fired
}
});
// open the modal
$('#myModal').modal('show');
我正在使用JavaScript调用bootstrap模式#myModal。一旦我关闭模态,我想将页面指向不同的路径。问题是在关闭模态后需要30秒-1分钟来指导页面。我添加了一个警报来检查事件是否迟到了,但是当我关闭模态时我会收到警报,但页面只是在经过漫长的等待后才被指示。
有时当我点击其他地方时会被解雇。但这种情况并非总是发生 - 有时漫长的等待是不可避免的。
我最初的猜测是因为我正在使用自举模式并使用$ location,当模态关闭时,angular可能无法检测到它。但现在看起来似乎是一个愚蠢的猜测。我也尝试将事件触发器更改为'hidden.bs.modal'但得到了相同的结果。
我会尝试添加角度$ modal,看看是否解决,将发布更新。但同时我很高兴能够理解这种设置延迟背后的原因。
谢谢。
答案 0 :(得分:1)
由于jquery
事件angular
不会立即意识到此事件。它将不得不等到下一个摘要周期,这将导致延迟。您尝试使用$scope.$apply
$scope.$apply(function() {
if ($location.path() == '/') {
$location.path('/ser/mynewpath');
alert("fired"); // just to check the event was fired
}
}