在我的角度应用程序内;我正在使用ngx-bootstrap模态。
此模式用于在单击按钮后显示和隐藏模式(onShown
/ onHidden
)时返回可观察到的回调。
我的代码如下:
import {Injectable, TemplateRef} from '@angular/core';
import {BsModalService} from 'ngx-bootstrap/modal';
import {BsModalRef} from 'ngx-bootstrap/modal/bs-modal-ref.service';
@Injectable()
export class MyService {
modalRef: BsModalRef;
constructor(private modalService: BsModalService) {
}
openModal(template: TemplateRef<any>) {
this.modalRef = this.modalService.show(template ,{ class: ' modal-lg' } );
}
onModalShown(){
return this.modalService.onShown;
// I WANT TO RETURN this.modalService.onShown + modalRef
onModalHidden(){
return this.modalService.onHidden;
}
}
我的目的是如何结合onModalShown
/ onModalHidden
方法,以便可以将引用与modalRef
响应同时附加到模态this.modalService.onShown
?
我想返回this.modalService.onShown + modalRef,并能够在我的组件中进行订阅并获取两个数据
@Component()
export class MyComponent {
constructor( private myService : MyService) {}
whenCallbackFired(){
this.myService.onModalShown.subscribe(()=>{
GET HERE BOTH INFORMATIONS ??
})
}
}
要注意;单击按钮后设置modalRef
建议?
足够了吗:
onModalShown() {
return this.modalService.onShown.pipe(
map((directive) => ({ directive, modalRef: this.modalRef })
);
}
您可以在组件内部执行以下操作:
whenCallbackFired(){
this.myService.onModalShown.subscribe(({ directive, modalRef })=> {
console.log(modalRef);
})
}