Ionic应用程序冻结或停止工作后弹出窗口和模式关闭



我有一个ionic应用程序,它有一个侧菜单,一个弹出窗口和一个模态。

  • 页面中有一个网格表

  • 用户可以选择某一行进行高亮显示

  • 用户可以打开弹出窗口,查看或编辑行。

  • 选择"视图"或"编辑",将打开一个模式。

  • 在模态中,右上角有一个取消按钮

  • 关闭模态后,所有的点击,触摸,滑动等都不被执行

这是popovermodal的代码。

JS

// MODAL
$ionicModal.fromTemplateUrl('templates/modals/view-product.html', {
  scope: $scope,
  animation: 'slide-in-up'
})
.then(function(modal) {
      $scope.viewModal = modal;
  });
  $scope.openModal = function(modal) {
    $scope[modal].show();
  };
  $scope.closeModal = function(modal) {
    $scope[modal].hide();
  };

// POPOVER
  $ionicPopover.fromTemplateUrl('templates/popovers/list.popover.html', {
      scope: $scope,
  }).then(function (popover) {
      $scope.popover = popover;
  });

<!-- POP OVER -->
<ion-popover-view class="fit">
    <ion-content>
        <div class="list">
            <a class="item" ng-click="viewProduct(this); popover.hide()" ng-bind="lblView"></a>
            <a class="item" ng-click="editProduct(this); popover.hide()" ng-bind="lblEdit"></a>
        </div>
    </ion-content>
</ion-popover-view>
<!-- MODAL -->
<ion-modal-view>
    <ion-header-bar class="bar bar-header bar-positive">
        <h1 class="title">Viewing Product</h1>
        <button class="button button-clear button-primary" ng-click="closeModal('viewModal')">Cancel</button>
    </ion-header-bar>
    <ion-content class="padding">
        <div class="list">
           <!-- list here -->
        </div>
    </ion-content>
</ion-modal-view>

这里我解决了它关闭弹出窗口和使用超时之前打开模态,看

    $scope.openModal = function(){
        if(!$scope.modal) return;       
        // Call a function to close the popover
        $scope.closePopover();      
        // Set a timeout to show the modal only in next cycle
        $timeout(function(){
            $scope.modal.show()
        }, 0);
    });

似乎这个问题已经是一个已知的错误,并且已经在ionic问题跟踪器中列出:

https://github.com/driftyco/ionic/issues/8582

我想我只能等上面的链接给出答案了

只是准备了一个小操场的例子,也许你可以把你的解决方案和它比较一下,找出问题在哪里。

http://play.ionic.io/app/89ab5ebbb236

注意,我主动隐藏弹出窗口时显示的模式-这可能是问题,你做过在你的应用程序?

所以乍一看我不能重现这个问题。如果提供的示例没有帮助您,那么了解一下您是否在控制台中得到任何错误将是很有趣的。

这应该很有帮助。

$scope.closePopover = function () {
  $scope.popover.hide();
};
$scope.closeModal = function() {
  $scope.closePopover();
  $scope.Modal.hide();
};

在我的离子2应用程序中有类似的问题。我通过使用"this.navCtrl.pop()"来关闭模态,而不是使用"dismiss()"函数来解决这个问题。

注意:不要在关闭模态后立即使用"this.setRoot()"函数

这个问题的快速解决方案是一个简单的CSS类,不需要任何JS的变通方法。

自定义css文件

.modal-open{ pointer-events: all ; }
.popover-open { pointer-events: all ; }

backdropClickToClose:false被设置时,这个修复不会覆盖模态或弹出窗口的行为。周边区域仍无法点击

相关内容

  • 没有找到相关文章

最新更新