JS如何继续事件防止默认
JS how to continue event prevent default
我正在尝试弹出模式询问用户是否确定要离开页面,
虽然还有尚未提交的更改。
这些更改不是使用 <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
}
});
}
})
我正在尝试弹出模式询问用户是否确定要离开页面, 虽然还有尚未提交的更改。
这些更改不是使用 <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
}
});
}
})