diff --git a/src/modal/modal.js b/src/modal/modal.js index f5729d59b3..88aee826d9 100644 --- a/src/modal/modal.js +++ b/src/modal/modal.js @@ -375,6 +375,10 @@ angular.module('ui.bootstrap.modal', ['ui.bootstrap.stackedMap', 'ui.bootstrap.p afterAnimating.done = true; $animate.leave(domEl).then(function() { + if (done) { + done(); + } + domEl.remove(); if (closedDeferred) { closedDeferred.resolve(); @@ -382,9 +386,6 @@ angular.module('ui.bootstrap.modal', ['ui.bootstrap.stackedMap', 'ui.bootstrap.p }); scope.$destroy(); - if (done) { - done(); - } } } diff --git a/src/modal/test/modal.spec.js b/src/modal/test/modal.spec.js index 4253b487ae..84fd7cf381 100644 --- a/src/modal/test/modal.spec.js +++ b/src/modal/test/modal.spec.js @@ -1390,7 +1390,7 @@ describe('$uibModal', function() { expect(body).not.toHaveClass('modal-open'); }); - it('should remove the custom class on closing of modal', function() { + it('should remove the custom class on closing of modal after animations have completed', function() { var modal = open({ template: '