在我的角度应用程序内;我正在使用 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
建议?
答案 0 :(得分:0)
足够了吗?
onModalShown() {
return this.modalService.onShown.pipe(
map((directive) => ({ directive, modalRef: this.modalRef })
);
}
您可以在组件内部执行以下操作:
whenCallbackFired(){
this.myService.onModalShown.subscribe(({ directive, modalRef })=> {
console.log(modalRef);
})
}