【问题标题】:I have a modal that opens a second modal and cannot close the first modal if open then close the second我有一个打开第二个模态的模态,如果打开则无法关闭第一个模态,然后关闭第二个
【发布时间】:2016-02-01 19:34:21
【问题描述】:

首先我创建了一个codepen,我认为标题说明了一切。我创建了一个服务来处理我的模态,如此处所示

.service('ModalService', function($ionicModal, $ionicLoading, $rootScope) {
    var init = function(tpl, $scope) {
      $ionicLoading.show({
        content: 'Loading',
        animation: 'fade-in',
        showBackdrop: true,
        maxWidth: 200,
        showDelay: 0
      });

      var promise;
      $scope = $scope || $rootScope.$new();
      promise = $ionicModal.fromTemplateUrl(tpl, {
        scope: $scope,
        animation: 'slide-in-up'
      }).then(function(modal) {
        $scope.modal = modal;
        return modal;
      });
      $scope.$on('$destroy', function() {
        $scope.modal.remove();
      });
      return promise;
    }
    return {
      init: init
    }
  })

它会像这样在控制器中被调用

   ModalService.init('modal.html', $scope).then(function(modal) {
        ...do something....
        $ionicLoading.hide();
        modal.show();
      });

我只能关闭一个模式,第一个或第二个,但如果我进入第二个,我无法关闭第二个。我假设当我关闭一个它会破坏两者的模态实例?如果我不想将它分成不同的控制器,我该如何解决这个问题?

【问题讨论】:

  • 您要关闭第一个模态然后打开第二个模态吗??
  • 如果我导航到第二个,我希望它们都能够关闭,但是当我导航到第二个并关闭它(返回到第二个)时,它会使第一个模态关闭按钮无响应
  • 我没有使用离子框架
  • 我认为这可能会有所帮助:forum.ionicframework.com/t/…
  • 使用超时功能2秒或3秒后自动关闭模态框

标签: javascript angularjs ionic-framework modal-dialog


【解决方案1】:

您将$ionicModal.fromTemplateUrl(...).then(modal) 函数返回的modal 控制器的所有实例分配给$scope.modal。

第二个实例“覆盖”第一个实例,因此当您关闭第二个实例然后尝试使用关闭按钮隐藏第一个实例时 (ng-click="modal.hide()")$scope.modal 仍指向第二个实例...

因此,在您的服务中,您必须为每个 $ionicModal 实例单独存储模态控制器。 这是对您的代码的可能编辑:

http://codepen.io/beaver71/pen/dGKBmv

也请查看此帖子:How to create two ionic modal in a cordova app? 或者这个:Ionic Multiple Modals only last showing

【讨论】:

  • 这正是我想要的。感谢您抽出宝贵时间分享
  • 再次感谢您的帮助,但是在使用库模式时这是如何工作的?我似乎有一个问题,让任何一个响应并将其表述为我在这里创建的另一个问题stackoverflow.com/questions/35474491/…。再次感谢,您可能知道
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-12
  • 2014-10-08
  • 2012-05-14
  • 1970-01-01
  • 2022-11-29
  • 1970-01-01
相关资源
最近更新 更多