我有$modalInstance
。我可以在承诺的帮助下收到关闭事件通知:
$modalInstance.result.finally(function() {
// code here
});
但是如果用户误将模型关闭,我不知道如何阻止关闭。我想询问用户是否真的要关闭模型并关闭它,如果他的话。我仍然不想启用backdrop: 'static'
:
$modal.open({
... // other options
backdrop : 'static'
});
谢谢。
答案 0 :(得分:2)
我做了更多的研究,我发现another question与此类似,这就是在这个问题上找到的答案(随意给他+1,而不是我)
$scope.$on('modal.closing', function(event, reason, closed) {
var r = prompt("Are you sure you wanna close the modal? (Enter 'YES' to close)");
if (r !== 'YES') {
event.preventDefault();
}
});
将它放在模态控制器内。
这不是您搜索的内容,如果您尝试关闭模式,通过关闭(单击外部模式),取消或确定按钮,这将提示您。您可以尝试修改它以满足您的需求。
更新:添加简单的if else
检查以查看点击的内容,如果点击了背景,则提示用户:
$scope.$on('modal.closing', function(event, reason, closed) {
if (reason == 'ok' || reason == 'cancel'){
console.log('closed');
} else {
// this is if 'reason' == 'backdrop click'
var r = prompt("Are you sure you wanna close the modal? (Enter 'YES' to close)");
if (r !== 'YES') {
event.preventDefault();
}
}
});
您认为此解决方案是否足够?