当手动关闭模式时,没有问题。我只是简单地创建了一些提示,只有当提示(甜蜜警报)关闭时,我才调用BsModalRef.hide()方法。
现在,当通过bootstrap内置的ESC-key和单击外部事件关闭模式时,我仍然可以订阅BsModalService.onHide-event。但我不知道如何防止模式实际关闭,只要提示还没有得到响应。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;
}
});
});
}非常感谢您的帮助,谢谢!
发布于 2019-10-16 16:49:49
所以使用ngx-bootstrap你不会有这样的事件。
我使用@ng-bootstrap而不是ngx-bootstrap包解决了这个问题。为此,我还必须从bootstrap 3升级到bootstrap 4样式表。
在此之后,我可以使用beforeDismiss Event。
感谢您的投入
发布于 2019-10-12 01:35:01
我相信你说的B指的是bootstrap,它有一个beforeDismiss事件。试试看。
https://stackoverflow.com/questions/58342200
复制相似问题