diff --git a/src/angular-ui-router-uib-modal.js b/src/angular-ui-router-uib-modal.js index ee5fef3..057311f 100644 --- a/src/angular-ui-router-uib-modal.js +++ b/src/angular-ui-router-uib-modal.js @@ -17,7 +17,7 @@ angular.module("ui.router.modal", ["ui.router"]) throw new Error("Invalid modal state definition: The onExit setting may not be specified."); } - var modalInstance; + var openModal; // Get modal.resolve keys from state.modal or state.resolve var resolve = (Array.isArray(options.modal) ? options.modal : []).concat(Object.keys(options.resolve || {})); @@ -33,10 +33,10 @@ angular.module("ui.router.modal", ["ui.router"]) } } - modalInstance = $uibModal.open(options); + var thisModal = openModal = $uibModal.open(options); - modalInstance.result['finally'](function() { - if (modalInstance) { + openModal.result['finally'](function() { + if (thisModal === openModal) { // Dialog was closed via $uibModalInstance.close/dismiss, go to our parent state $state.go($state.get("^", stateName).name); } @@ -47,10 +47,10 @@ angular.module("ui.router.modal", ["ui.router"]) options.onEnter.$inject = inject.concat(resolve); options.onExit = function() { - if (modalInstance) { + if (openModal) { // State has changed while dialog was open - modalInstance.close(); - modalInstance = null; + openModal.close(); + openModal = null; } };