繁体   English   中英

如何防止Angular-UI引导程序模式关闭?

[英]How to prevent Angular-UI bootstrap modal closing?

我有一个$modalInstance 我可以在promises的帮助下收到关闭事件通知:

$modalInstance.result.finally(function() {
  // code here
});

但是我不知道如果用户错误地关闭了模型,如何防止关闭。 我想问用户是否真的要关闭模型,如果确实要关闭它。 仍然我不想启用backdrop: 'static'

$modal.open({
  ... // other options
  backdrop : 'static'
});

谢谢。

我做了一些进一步的研究,然后发现了另一个与此问题类似的问题 ,这是在该问题上找到的答案(请随意为他+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();
        }
    }
});

您是否认为此解决方案足够?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM