【发布时间】:2018-01-17 15:28:23
【问题描述】:
我想在 Angular 中使用 Material 的 mat-menu 作为下拉指令,并找到了一种操作它的方法,以便满足我们应用程序的需求(请参阅此处的相关问题:Override Angular Material Component)
现在我将 mat-menu 集成到我们的组件中。但菜单打开和关闭非常缓慢。可能与mat-menu在for循环的子组件内的问题有关,所以会生成很多mat-menu。
我创建了一个 stackblitz 来展示这个问题:https://stackblitz.com/edit/angular-uzlezn-nh7dbu?file=app/menu-icons-example.html
第一个“测试测试”是一个垫子菜单,它不在 for 循环内。在这里,它会在合理的时间打开和关闭。
“bla bla”菜单位于循环内。当您单击它们时,您会看到有时开头的垫子菜单也会打开,而要关闭菜单,您需要单击两次。我认为发生这种情况是因为您需要单击以关闭每个菜单。
现在我认为这是因为每个菜单都有相同的模板名称(尽管我读到当 mat-menu 在循环内时这不是问题,因为每个菜单都有自己的范围)。
我还尝试使用 ng-container 围绕循环,但这也没有提高性能。
有人知道我可以做些什么来提高性能,或者可以为 Angular (5) 的下拉菜单提出不同的替代方案吗?
【问题讨论】:
标签: angular performance drop-down-menu angular-material