我有左杠组件。在该组件内部,我有用于打开模式的按钮。如何从该按钮打开模式,但不能在该组件内部打开它?
答案 0 :(得分:2)
您可以将modal
代码添加到父母.component.html
内,以便在整个页面上可用。
对于ng-bootstrap(例如),它应该看起来像这样:
<ng-template #myModal>
<div class="modal-header">
...
</ng-template>
现在,您可以在孩子的组件(左栏组件)中添加打开此模式的输出:
@Output() openmodal: EventEmitter<boolean> = new EventEmitter();
通过按下按钮
<button (click)="openMyOpen()">Open Modal</button>
您可以触发输出
openMyOpen(): void {
this.openmodal.emit(true);
}
在父母的组件中,如果已配置,您将收到此输出
<left-bar (openmodal)="open($event, )"></left-bar>
然后在此组件中打开模态
@ViewChild('myModal') myModal: NgbModal;
open(): void {
this.modalService.open(this.myModal);
}
请不要说此解决方案使用ng-bootstrap,但可以根据您想使用的任何模式进行调整。