Angular ngbPopover,如何从子compopent打开弹出框

问题描述

与ng-Bootstrap结合使用时,我有一个弹出窗口和一个子组件(应用程序顾问):

<!-- some.component.html -->
<app-adviser [text]="advisorText"></app-adviser>
<div 
    ...
    triggers="manual" 
    #p="ngbPopover" 
> </div>

触发弹出窗口的按钮在子组件中:

<!-- adviser.component.html -->
<button type="button" (click)="p.open()">
        Open popover
</button>

但是弹出窗口必须位于父组件中,通常我将单击函数click =“ click.p.open()”,但是如何将其从子组件传递到父组件?

解决方法

如果弹出框的内容和按钮都在子组件中,则必须将所有弹出框的逻辑从父组件移到子组件。在stackblitz下面,您可以看到一个示例。

https://stackblitz.com/edit/popover-in-child-component?file=src%2Fapp%2Fchild%2Fchild-component.html