Angular 隐藏特定BsModalRef实例后,如何调用方法?
在过去使用modals时,我遇到了一种模式,它返回一个ModalRef对象,该对象上有一个承诺,当关闭或取消modal时,该承诺被解析或拒绝 查看InNGX引导,似乎没有任何方法可以跟踪该模式引用是否已关闭或取消 相反,他们似乎建议订阅BsModalService上的Angular 隐藏特定BsModalRef实例后,如何调用方法?,angular,ngx-bootstrap,ngx-bootstrap-modal,Angular,Ngx Bootstrap,Ngx Bootstrap Modal,在过去使用modals时,我遇到了一种模式,它返回一个ModalRef对象,该对象上有一个承诺,当关闭或取消modal时,该承诺被解析或拒绝 查看InNGX引导,似乎没有任何方法可以跟踪该模式引用是否已关闭或取消 相反,他们似乎建议订阅BsModalService上的onHidden()事件。不幸的是,这对我不起作用,因为它会在任何模态被隐藏时触发事件。我只想对隐藏的特定模态实例作出反应 我有什么办法可以这样做吗 我考虑过使用Rxjs的take()操作符,只接收订阅了onHiddenObserv
onHidden()
事件。不幸的是,这对我不起作用,因为它会在任何模态被隐藏时触发事件。我只想对隐藏的特定模态实例作出反应
我有什么办法可以这样做吗
我考虑过使用Rxjs的take()
操作符,只接收订阅了onHidden
Observable后触发的第一个事件,但这感觉有点不对劲
const modalRef = modalService.show(RedirectToHomeModalComponent);
const returnHome = () => console.log('Returning home');
this.bsModalService.onHidden.pipe(take(1), returnHome);
也许你可以从你网站的内容中订阅任何Eventmitter 关于modal.component.ts
hideEvent: EventEmitter<any> = new EventEmitter();
onSomeFunction(){
this.hideEvent.next(value);
}
ngOnDestroy(){
this.hideEvent.next(); // modal is closed without any data.
}
const modalRef = modalService.show(RedirectToHomeModalComponent);
this.modalRef.content.hideEvent.pipe(take(1)).subscribe(value => {
if(value){ // closed with a value.
... do something
}
else { // closed via backdrop or something else
... do something
}
});