我的應用程序可以打開一個模式,如果已經有一個打開。如果是這種情況,我想關閉該模式並在完成後打開新模式。如何檢查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(M)再有就是這個:
d.$$state.status = 1
d.$$state.value = true
但我不能訪問變量m在我的應用程序的其他地方,所以我不能檢查這一點。
整齊漂亮,會給它一個鏡頭和報告背部。謝謝。 – Bento
這工作。任何想法如何我可以關閉模態?我現在用$ rootScope.m替換了var m,它允許我在應用程序的任何地方訪問m。想知道是否有更好的解決方案。 $ rootScope.m = ModalService.open('lg','','ng-templates/modal.html',true,'ModalController'); 然後我做:$ rootScope.m.close(); – Bento
只需將像'open'這樣的'modalInstance'存儲爲局部變量並實現一個附加函數(例如:'ModalService.closeModal()')並關閉服務中的模式。 問題是爲什麼你想關閉它的範圍之外的模態。 –