Мое приложение может открыть модальный, если есть уже один открытый. Если это так, я хочу закрыть этот модальный и открыть новый после этого.Как проверить, открыт ли модем Bootstrap UI? - AngularJS
служба открыть модальности:
app.service('ModalService', function($uibModal) {
this.open = function(size, template, content, backdrop, controller) {
var modalInstance = $uibModal.open({
animation: true,
templateUrl: content,
windowTemplateUrl: template,
controller: controller,
backdrop: backdrop,
size: size,
resolve: {}
});
return modalInstance;
};
Тогда я открываю один с:
var m = ModalService.open('lg', '', 'ng-templates/modal.html', true, 'ModalController');
И я могу закрыть его:
m.close();
я могу использовать только m.close() в том же коммутаторе/случае, когда я открываю модальный. Если я хочу закрыть его в другом, если инструкция позже в коде m не определена.
В любом случае. Могу ли я проверить, открыт ли модальный? Если я console.log (м), то есть это:
d.$$state.status = 1
d.$$state.value = true
Но я не могу получить доступ к переменным м в другом месте в моем приложении, поэтому я не могу проверить это.
Очень аккуратно, даст ему шанс и отчет назад. Благодарю. – Bento
Это работает. Любая идея, как я могу закрыть модальную? Теперь я заменил var m на $ rootScope.m, который позволяет мне получить доступ к m во всем приложении. Удивительно, если есть лучшее решение. $ rootScope.m = ModalService.open ('lg', '', 'ng-templates/modal.html', true, 'ModalController'); Тогда я делаю: $ rootScope.m.close(); – Bento
Просто сохраните 'modalInstance' как' open' как локальную переменную и реализуйте дополнительную функцию (например: 'ModalService.closeModal()') и закройте модальный внутри вашей службы. Вопрос в том, почему вы хотите закрыть модальную систему вне ее сферы. –