diff --git a/js/angular/directive/modal.js b/js/angular/directive/modal.js index b8de1864d2..5915f69201 100644 --- a/js/angular/directive/modal.js +++ b/js/angular/directive/modal.js @@ -8,8 +8,8 @@ IonicModule restrict: 'E', transclude: true, replace: true, - template: '' }; }]); diff --git a/js/angular/service/modal.js b/js/angular/service/modal.js index 9d8c7e99e7..400a4dea64 100644 --- a/js/angular/service/modal.js +++ b/js/angular/service/modal.js @@ -118,7 +118,14 @@ function($rootScope, $document, $compile, $timeout, $ionicPlatform, $ionicTempla self.el.classList.add('active'); }, 20); - return $timeout(angular.noop, 400); + return $timeout(function() { + //After animating in, allow hide on backdrop click + angular.element(self.el).on('click', function(e) { + if (e.target === self.el) { + self.hide(); + } + }); + }, 400); }, /** @@ -139,6 +146,7 @@ function($rootScope, $document, $compile, $timeout, $ionicPlatform, $ionicTempla .removeClass('ng-enter ng-enter-active active'); }, 20); + angular.element(self.el).off('click'); self._isShown = false; self.scope.$parent && self.scope.$parent.$broadcast('modal.hidden', self); self._deregisterBackButton && self._deregisterBackButton();