gpt4 book ai didi

javascript - JS如何继续事件防止默认

转载 作者:行者123 更新时间:2023-11-30 14:17:56 25 4
gpt4 key购买 nike

我正在尝试弹出模式询问用户是否确定要离开页面,同时还有尚未提交的更改。

这些更改不是使用 <form> 完成的元素,但只是一些变化是在特定对象上制作的。

我试图检测他何时试图使用 $routeChangeStart 离开页面和 $routeChangeSuccess像这样:

$scope.$on('$routeChangeStart', function(event, current) {
event.preventDefault();
ConfirmationModal.fire("Do you sure?", response => {
if (response) {
// how to CONTINUE the prevent default??
}
});
}

上面的代码实际上停止了传播并且不让用户离开这一页。

但是 - 在确认模式后,我找不到任何方法继续页面移动。我的意思是,我可以防止违约但不能继续违约。

我也尝试过:

$location.path(PATH)但这根本行不通。

此外 - 即使用户再次点击离开页面 - 事件 preventdefault 仍然存在阻止。

最佳答案

您可以添加一个标志和一个条件:

有点像

$scope.allowChange = false;

$scope.$on('$routeChangeStart', function(event, current) {
// don't do anything when allowChange === true
if (!$scope.allowChange) {
event.preventDefault();
ConfirmationModal.fire("Do you sure?", response => {
if (response) {
$scope.allowChange = true
$location.path(...) // I forget prop to get new path from
}
});
}

})

关于javascript - JS如何继续事件防止默认,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53249233/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com