【发布时间】:2019-09-12 08:45:32
【问题描述】:
我有一个 Angular 组件,它实际上是引擎盖下的一个按钮:
<app-button (click)="showText(thebutton)" #thebutton>
<button type="button" class=""><span>Popover</span></button>
</app-button>
showText() 方法调用 PopoverService.open() 方法,该方法应在按钮旁边显示一个弹出框(工具提示)。
问题是,弹出框出现在浏览器窗口的左上角,而不是元素旁边。
<div id="cdk-overlay-0" class="cdk-overlay-pane" style="pointer-events: auto;">
<app-popover>
<div class="popover"></div>
</app-popover>
</div>
应用按钮有一个“显示:内联块;位置:相对;”样式,就像一个普通的html按钮。
当我将代码更改为普通的 HTML 按钮时,它按预期工作:
<button (click)="showText(thebutton)" #thebutton>Popover</button>
Material CDK 添加了“top”和“left”样式,如下所示:
<div id="cdk-overlay-2" class="cdk-overlay-pane" style="pointer-events: auto; top: 87px; left: 389.656px;">
<app-popover>
<div class="popover"></div>
</app-popover>
</div>
样式为“display: inline-block”的简单 div 也可以。
为什么 Angular 组件(样式为“display: inline-block; position: relative;”)不能工作,我怎样才能让它工作?
【问题讨论】:
标签: angular angular-material overlay angular-cdk