ionic-framework - 如何防止 ionic 模态隐藏

标签 ionic-framework ionic-view

我捕获了 modal.hidden 事件,并对其进行了一些检查。当检查为 false 时,我想防止模态隐藏。我使用 e.preventDefault()。但它不起作用。

我的代码 & CodePen :

$scope.$on('modal.hidden', function(event) {
    var isPassed = false;
    // do some check
    if (isPassed == false) {
        event.preventDefault();
    }  
});

最佳答案

您可以在设置模式时使用 backdropClickToClosehardwareBackButtonClose 选项并隐藏后退按钮。这将防止模式被关闭:

// Load the modal from the given template URL
$scope.modal = {};
$ionicModal.fromTemplateUrl('my-modal.html', {
    scope: $scope,
    animation: 'slide-in-up',
    backdropClickToClose: false,
    hardwareBackButtonClose: false
}).then(function(modal) {
    $scope.modal = modal;
});

然后您可以进行一些检查并将这些值再次设置为 true,同时显示后退按钮。这仍然是用户友好的,用户可以以适当的方式关闭模式。

function checkSomething(){
    // The timeout is only to demonstrate, do your check here
    $timeout(function(){
      console.log("Now user can close modal")
      $scope.isPassed = true;
      $scope.modal.backdropClickToClose = true;
      $scope.modal.hardwareBackButtonClose = true;
    }, 3000)
}

更新代码笔 here

关于ionic-framework - 如何防止 ionic 模态隐藏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31218684/

相关文章:

html - Ionic - 如何将 ionic 列表变成网格

javascript - 如何更改 ionic 头颜色

angular - 如何格式化和显示从 AngularFire 返回的 Firestore 数据?

javascript - 如何在Ionic框架中使用iframe显示HTTPS页面?

angularjs - Angular ng-show ="false"不起作用

javascript - 使用 ionic 中的 angularjs 创建和更新全局列表

android - Ionic View App with iOS device which data has not been showed

css - 如何在激活时将 ionic slider 寻呼机点/圆圈颜色更改为黄色,将非事件状态更改为白色?

javascript - 如何在您的 Ionic/AngularJs 应用程序中包含和使用 Node 模块?

cordova - www/index.html 想使用您当前的位置 - Ionic Framework