이미 열려있는 경우 내 응용 프로그램이 모달을 열 수 있습니다. 그렇다면 그 모달을 닫고 새로운 모달을 여는 것이 좋습니다.부트 스트랩 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을 사용할 수 있습니다
서비스는 조동사를 엽니 다() 내 모달을 여는 것과 동일한 스위치/케이스 안에서. 나중에 다른 if 문에서 코드를 닫고 싶다면 m은 정의되지 않습니다.
어쨌든. 모달이 열려 있는지 확인할 수 있습니까?
d.$$state.status = 1
d.$$state.value = true
그러나 나는 다른 곳에서 내 응용 프로그램에서 변수 m에 액세스 할 수 없습니다 그래서 나는 그것에 대해 확인할 수 없습니다 : 나는 (m)를 CONSOLE.LOG 경우이있다.
멋지다는, 그것을 샷 보고서를 줄 것이다 뒤로. 감사. – Bento
이것은 작동합니다. 내가 어떻게 모달을 닫을 수 있는지 아는가? 이제 var m을 $ rootScope.m으로 바꿨습니다.이 앱을 사용하면 앱의 모든 곳에서 m에 액세스 할 수 있습니다. 더 나은 솔루션이 있는지 궁금합니다. $ rootScope.m = ModalService.open ('lg', '', 'ng-templates/modal.html', true, 'ModalController'); 다음과 같이합니다. $ rootScope.m.close(); – Bento
'open'과 같은'modalInstance'를 지역 변수로 저장하고 추가 함수 (예 :'ModalService.closeModal()')를 구현하고 서비스 내부의 모달을 닫으십시오. 질문은 왜 범위 밖에서 모달을 닫고 싶은지입니다. –