Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我有一个打开第二个模态的模态,无法关闭第一个模态,如果打开,则关闭第二个模态_Javascript_Angularjs_Ionic Framework_Modal Dialog - Fatal编程技术网

Javascript 我有一个打开第二个模态的模态,无法关闭第一个模态,如果打开,则关闭第二个模态

Javascript 我有一个打开第二个模态的模态,无法关闭第一个模态,如果打开,则关闭第二个模态,javascript,angularjs,ionic-framework,modal-dialog,Javascript,Angularjs,Ionic Framework,Modal Dialog,首先,我创作了一部电影,我想这部电影的标题说明了一切。我创建了一个服务来处理modals,如图所示 .service('ModalService', function($ionicModal, $ionicLoading, $rootScope) { var init = function(tpl, $scope) { $ionicLoading.show({ content: 'Loading', animation: 'fade-in',

首先,我创作了一部电影,我想这部电影的标题说明了一切。我创建了一个服务来处理modals,如图所示

.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();
      });

问题是我只能关闭一个模态,第一个模态或第二个模态,但是如果我进入第二个模态,我就不能关闭第二个模态。我假设当我关闭一个的时候,它会破坏两个的模态实例?如果我不想将其拆分为不同的控制器,如何解决此问题?

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

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

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

也请查看此帖子:
或者这一个:

你想先关闭第一个模式,然后打开第二个模式吗?如果我导航到第二个模式,我希望它们都能关闭,但当我导航到第二个模式并关闭它时(返回第二个模式)它使第一个模态关闭按钮没有响应。我不使用ionic Framework。我认为这可能会有所帮助:使用超时功能在2秒或3秒后自动关闭模态框。这正是我想要的。感谢您抽出时间再次分享银行对您的帮助,但是在使用模式库时这是如何工作的?我似乎有一个问题,那就是让他们中的任何一个做出反应,并将其表述为我在这里提出的另一个问题。再次感谢,我想你可能知道