Javascript 我有一个打开第二个模态的模态,无法关闭第一个模态,如果打开,则关闭第二个模态
首先,我创作了一部电影,我想这部电影的标题说明了一切。我创建了一个服务来处理modals,如图所示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',
.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秒后自动关闭模态框。这正是我想要的。感谢您抽出时间再次分享银行对您的帮助,但是在使用模式库时这是如何工作的?我似乎有一个问题,那就是让他们中的任何一个做出反应,并将其表述为我在这里提出的另一个问题。再次感谢,我想你可能知道