从Angular-Material项目中删除HammerJS

时间:2018-08-12 15:17:30

标签: angular angular-material hammer.js

我正在使用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版本:

  • Angular / Angular CLI v6.0.1
  • 角材料v6.4.0
  • 节点v8.11.1
  • TypeScript v2.7.2
  • HammerJS-2.0.8(删除前)

1 个答案:

答案 0 :(得分:1)

我知道这是一个古老的问题,但是对于任何来这里寻求答案的人来说,我都在此GitHub link

上找到了解决方案

我将此添加到了app.module.ts

import { HAMMER_LOADER } from '@angular/platform-browser';

providers: [{
  provide: HAMMER_LOADER,
  useValue: () => new Promise(() => {})
}]

对于单元测试,我分别添加到每个测试类。