我正在使用Material设计开发Angular应用程序。最近,我在其中一页中发现了内存泄漏。每次加载此页面时,都会花费越来越多的时间进行初始化/渲染。
此页面包含一个材料表mat-table
(15列x 100行),每个单元格上都有一个材料工具提示mat-tooltip
。
经过研究后,我知道内存泄漏是由于工具提示(而不是表格)引起的。
有关Github的文章建议删除HammerJS作为修复程序,请参见:https://github.com/angular/material2/issues/4499。
现在内存不再泄漏了,我仍然收到以下2条警告:
找不到HammerJS。某些Angular Material组件可能无法正常工作。
Hammer.js未加载,无法绑定'longpress'事件。
那么如何告诉Angular-Material我对触摸手势不感兴趣,因此我对HammerJS不感兴趣?
Frameworks版本:
答案 0 :(得分:1)
我知道这是一个古老的问题,但是对于任何来这里寻求答案的人来说,我都在此GitHub link
上找到了解决方案我将此添加到了app.module.ts
import { HAMMER_LOADER } from '@angular/platform-browser';
providers: [{
provide: HAMMER_LOADER,
useValue: () => new Promise(() => {})
}]
对于单元测试,我分别添加到每个测试类。