From c4ca7a85e0014cadd047065522b13b6eae4788f8 Mon Sep 17 00:00:00 2001 From: Adam Bradley Date: Mon, 10 Mar 2014 14:42:49 -0500 Subject: [PATCH] fix(modal): Fix removing modal from DOM on .remove(), closes #755 --- js/ext/angular/src/service/ionicModal.js | 5 +++-- js/ext/angular/test/modal.html | 14 +++++++------- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/js/ext/angular/src/service/ionicModal.js b/js/ext/angular/src/service/ionicModal.js index ee69257c25e..4e9fa127046 100644 --- a/js/ext/angular/src/service/ionicModal.js +++ b/js/ext/angular/src/service/ionicModal.js @@ -26,7 +26,7 @@ angular.module('ionic.service.modal', ['ionic.service.templateLoad', 'ionic.serv $timeout(function(){ element.addClass('ng-enter-active'); - self.scope.$parent.$broadcast('modal.shown'); + self.scope.$parent && self.scope.$parent.$broadcast('modal.shown'); }, 20); self._deregisterBackButton = $ionicPlatform.registerBackButtonAction(function(){ @@ -65,7 +65,8 @@ angular.module('ionic.service.modal', ['ionic.service.templateLoad', 'ionic.serv $timeout(function(){ self.scope.$destroy(); - }, 500); + self.el && self.el.parentElement && self.el.parentElement.removeChild(self.el); + }, 1000); }, isShown: function() { diff --git a/js/ext/angular/test/modal.html b/js/ext/angular/test/modal.html index c8cd5fb659a..058a6a4b40f 100644 --- a/js/ext/angular/test/modal.html +++ b/js/ext/angular/test/modal.html @@ -26,7 +26,6 @@ @@ -72,9 +72,6 @@

New Contact

$scope.openModal = function() { $scope.modal.show(); }; - $scope.closeModal = function() { - $scope.modal.hide(); - }; $ionicModal.fromTemplateUrl('modal.html', function(modal) { $scope.modal = modal; }, { @@ -85,9 +82,12 @@

New Contact

}) .controller('ModalCtrl', function($scope, $ionicActionSheet) { - $scope.close = function() { + $scope.hideModal = function() { $scope.modal.hide(); - } + }; + $scope.removeModal = function() { + $scope.modal.remove(); + }; $scope.openActionSheet = function() { $ionicActionSheet.show({