Ответ 1
TL;DR:
Включите модуль ui.bootstrap.modal
в ваше приложение, введите factory $modalStack
в свой контроллер/службу/что-то еще, а затем !!$modalStack.getTop()
достаточно, чтобы узнать, существует ли модальный вариант.
Подробное решение: Я столкнулся с той же проблемой, и я придумал следующую работу:
Существует factory, называемый $modalStack
, который определен в ui-bootstrap lib, который обрабатывает модалы. У той же службы также есть метод под названием getTop()
, который возвращает верхний самый модальный в dom. (И метод dismissAll()
, чтобы закрыть все модальности). Поэтому я написал небольшой модуль с небольшими функциями.
var utilsModule = angular.module('utilsModule', ['ui.bootstrap.modal']);
utilsModule.factory('modalUtils', [
'$modalStack',
function ($modalStack) {
return {
modalsExist: function () {
return !!$modalStack.getTop();
},
closeAllModals: function () {
$modalStack.dismissAll();
}
};
}
]);