假设我有一个mat-menu
,它在height
打开后不久(由于数据加载)而改变了。起初它的高度为50px
,然后可能具有类似200px
的高度。如果其触发器位于窗口的底部,则可能会发生以下情况:面板打开至底部(因为有足够的空间可容纳初始50px
高度),但紧接在加载数据之后,它仍保留在窗口中。底部。我想重新计算其位置,并使其好像已关闭并再次打开一样(在这种情况下,由于底部空间不足,面板在触发器上方打开了)。有办法吗?
您可以通过以下简单的堆栈闪电对其进行测试:https://stackblitz.com/edit/angular-lorwfh?file=app/menu-overview-example.ts
答案 0 :(得分:0)
由于尚无公开的方法可以解决此问题,因此我通过调度一个resize事件来解决它,以强制菜单在添加/删除新项目之后重新计算位置。
window.dispatchEvent(new Event('resize'));