我有一个父组件并从此组件调用父模态。在父模态中,我想调用一个位于不同组件中的子模态。但是当单击按钮并触发事件以隐藏父项然后显示子 ngx boostrap 模态时,子模态也会关闭。如何在不同的组件中隐藏父模态以显示子模态?
在父组件html中;
<div bsModal #parentModal="bs-modal" class="modal fade" tabindex="-1" [config]="modalOptions" role="dialog"
aria-labelledby="dialog-child-name" (onHidden)="hideParent()" id="parent">
<div class="modal-info modal-dialog" role="document">
<div class="modal-content" >
<div class="modal-header popupHeader">
</div>
<div class="modal-body">
<child-component (hideParent)="hidemodal()"> </child-component>
</div>
</div>
在父组件 ts
@ViewChild('parentModal', { static: false }) parentModal: ModalDirective;
hidemodal(){
this.parentModal.hide()
}
在子组件 html 中:
<button click = "openChild()">open child modal </button>
<div bsModal #childModal="bs-modal" class="modal fade" tabindex="-1" [config]="modalOptions" role="dialog"
aria-labelledby="dialog-child-name" (onHidden)="hideParent()" id="parent">
<div class="modal-info modal-dialog" role="document">
<div class="modal-content" >
<div class="modal-header popupHeader">
</div>
<div class="modal-body">
child modal
</div>
</div>
在子组件 ts
@ViewChild('childModal', { static: false }) childModal: ModalDirective;
@Output() hideParent = new EventEmitter();
openChild() {
this.hideParent.emit({});
this.childModal.show();
}