当有人更改状态时,我想调用preventDefault事件。
$scope.$on('$locationChangeStart', (e) => {
if (!$window.confirm("Are you sure leave this page?")) {
e.preventDefault();
}
});
当我尝试离开页面时不起作用。
如果我使用$ rootScope,它将起作用。
当我使用$rootScope.$on
event.preventDefault
不起作用时。
我该如何解决?
谢谢
答案 0 :(得分:0)
您需要在运行块内添加一个转换钩:
run(function($transitions) {
$transitions.onBefore({}, function() {
function confirmDialog(msg) {
return new Promise(function(resolve, reject) {
let confirmed = window.confirm(msg);
return confirmed ? resolve(true) : reject(false);
});
}
})
});
有关更多信息,请查看以下链接: https://ui-router.github.io/guide/transitionhooks#promises http://vancelucas.com/blog/using-window-confirm-as-a-promise/