我正在尝试弹出模式询问用户是否确定要离开页面, 还有尚未提交的更改。
这些更改不是使用<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仍然是 防止。
答案 0 :(得分:2)
您可以添加一个标志和一个条件:
类似
$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
}
});
}
})