@@ -375,6 +375,7 @@ angular.module('ui.bootstrap.modal', [])
375
375
$modalStack . close = function ( modalInstance , result ) {
376
376
var modalWindow = openedWindows . get ( modalInstance ) ;
377
377
if ( modalWindow && broadcastClosing ( modalWindow , result , true ) ) {
378
+ modalWindow . value . modalScope . $$uibDestructionScheduled = true ;
378
379
modalWindow . value . deferred . resolve ( result ) ;
379
380
removeModalWindow ( modalInstance , modalWindow . value . modalOpener ) ;
380
381
return true ;
@@ -385,6 +386,7 @@ angular.module('ui.bootstrap.modal', [])
385
386
$modalStack . dismiss = function ( modalInstance , reason ) {
386
387
var modalWindow = openedWindows . get ( modalInstance ) ;
387
388
if ( modalWindow && broadcastClosing ( modalWindow , reason , false ) ) {
389
+ modalWindow . value . modalScope . $$uibDestructionScheduled = true ;
388
390
modalWindow . value . deferred . reject ( reason ) ;
389
391
removeModalWindow ( modalInstance , modalWindow . value . modalOpener ) ;
390
392
return true ;
@@ -524,6 +526,12 @@ angular.module('ui.bootstrap.modal', [])
524
526
modalScope . $close = modalInstance . close ;
525
527
modalScope . $dismiss = modalInstance . dismiss ;
526
528
529
+ modalScope . $on ( '$destroy' , function ( ) {
530
+ if ( ! modalScope . $$uibDestructionScheduled ) {
531
+ modalScope . $dismiss ( '$uibModal' ) ;
532
+ }
533
+ } ) ;
534
+
527
535
var ctrlInstance , ctrlLocals = { } ;
528
536
var resolveIter = 1 ;
529
537
0 commit comments