Is there a way to automatically close Angular UI Bootstrap modal when route changes?

If you want all the opened modals to be closed whenever a route is changed successfully, you could do it in one central place by listening to the $routeChangeSuccess event, for example in a run block of your app:

var myApp = angular.module('app', []).run(function($rootScope, $uibModalStack) {
  $uibModalStack.dismissAll();
}); 

Here you can see that the $uibModalStack service gets injected on which you can call the dismissAll method – this call will close all the currently opened modals.

So, yes, you can handle modals closing centrally, in one place, with one line of code 🙂

Leave a Comment