При ручном закрытии модального режима проблем нет. Я просто создаю некоторое приглашение, и только когда приглашение (sweetalert) закрыто, я вызываю метод BsModalRef.hide ().
Теперь, когда модальное окно закрывается встроенным в ESC-ключом начальной загрузки исобытия click-outside, я все еще могу подписаться на событие BsModalService.onHide. Но я не знаю, как предотвратить модальное закрытие, пока на приглашение не ответили. bsModalRef: BsModalRef;
constructor(injector: Injector,
public bsModalService: BsModalService) {
super(injector);
}
ngOnInit(): void {
this.bsModalRef = this.bsModalService.show(SomeFormComponent,
{
keyboard: true,
backdrop: true
});
this.bsModalService.onHide.subscribe((e) => {
// PROBLEM: modal has already closed here...
swal({
text: 'u wanna save changes?',
title: 'prompt',
icon: 'warning'
}).open().then((answer: ModalResult) => {
switch(answer) {
case ModalResult.Save:
// i would like to save and close modal afterwards
break;
case ModalResult.DontSave:
// close modal
break;
default:
// stay on modal
break;
}
});
});
}
Помощь очень ценится, спасибо!