当他们在现有页面上尚未保存更改时,我试图阻止用户导航到其他页面。 我使用$ locationChangeStart并尝试触发一条弹出消息,询问用户是否真的要导航而不保存更改。
但是,在触发我的弹出窗口之前,视图也会发生变化。 只是我的event.preventDefault()不起作用。 不知道我在做什么错,但这是代码:
$rootScope.$on('$locationChangeStart', function (event) {
var path = $location.path();
if (self.editCableMode || self.editBinMode) {
SweetAlert.swal({
title: 'Still Editing',
text: 'You have unsaved changes. Are you sure you want to leave?',
type: 'warning',
showCancelButton: true,
confirmButtonColor: '#F8BB86',
confirmButtonText: 'Yes'
}, function (isConfirm) {
if (isConfirm) {
console.log(isConfirm)
self.editCableMode = false;
self.editBinMode = false;
}else{
console.log(isConfirm)
event.preventDefault();
}
});
}
});