角材料:根据高度变化重新计算垫菜单的位置

时间:2019-10-14 11:30:33

标签: angular angular-material

假设我有一个mat-menu,它在height打开后不久(由于数据加载)而改变了。起初它的高度为50px,然后可能具有类似200px的高度。如果其触发器位于窗口的底部,则可能会发生以下情况:面板打开至底部(因为有足够的空间可容纳初始50px高度),但紧接在加载数据之后,它仍保留在窗口中。底部。我想重新计算其位置,并使其好像已关闭并再次打开一样(在这种情况下,由于底部空间不足,面板在触发器上方打开了)。有办法吗?

您可以通过以下简单的堆栈闪电对其进行测试:https://stackblitz.com/edit/angular-lorwfh?file=app/menu-overview-example.ts

1 个答案:

答案 0 :(得分:0)

由于尚无公开的方法可以解决此问题,因此我通过调度一个resize事件来解决它,以强制菜单在添加/删除新项目之后重新计算位置。

window.dispatchEvent(new Event('resize'));