angular - Angular Material:在高度变化时重新计算 mat-menu 的位置
问题描述
假设我有一个在打开后的片刻mat-menu
改变它的(由于数据加载)。height
起初它有50px
高度,然后它可能有类似的东西200px
。如果它的触发器位于窗口的底部,则面板可能会打开到底部(因为初始50px
高度有足够的空间),但在加载数据后它仍保留在底部。我想重新计算它的位置并表现得好像它已经关闭并再次打开(在这种情况下,由于底部空间不足,面板在触发器上方打开)。有没有办法做到这一点?
您可以在这个简单的 stackblitz 中对其进行测试:https ://stackblitz.com/edit/angular-lorwfh?file=app/menu-overview-example.ts
解决方案
由于还没有公开的方法来解决这个问题,我通过发送一个 resize 事件来解决这个问题,以强制菜单在添加/删除新项目后重新计算位置。
window.dispatchEvent(new Event('resize'));
推荐阅读
- node.js - knex 问题 whereNotExists
- reactjs - Is this only possible with external URLs and not local?
- c++ - 使用 cmake 构建时出现对 `boost::archive::archive_exception::..... 的未定义引用
- c++ - 如何使用 Switch 语句将单词转换为 ICAO 字母表?
- c++ - 找不到权限被拒绝 opencv/lib
- http - 如何使用 NewSingleHostReverseProxy 处理错误
- php - 无需 cli 即可运行 Ratchet php 服务器
- javascript - 如何在 Ember 中使用 googleapis 节点包
- reactjs - 将带有嵌入式js变量的jsx推送到数组的正确方法是什么
- elasticsearch - JHipster 未添加字段搜索功能