Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 从角材质项目中删除HammerJS_Angular_Angular Material_Hammer.js - Fatal编程技术网

Angular 从角材质项目中删除HammerJS

Angular 从角材质项目中删除HammerJS,angular,angular-material,hammer.js,Angular,Angular Material,Hammer.js,我在做一个材料设计的角度应用。最近我在我的一个页面中发现了内存泄漏。每次加载此页面时,初始化/呈现都会花费越来越多的时间。 此页面包含材质表mat table(15列x 100行),每个单元格上都有材质工具提示mat工具提示。 经过一些研究,我了解到内存泄漏是由于工具提示(而不是表格)造成的。 Github上的一篇帖子建议删除HammerJS作为修复,请参阅: 现在内存不再泄漏,我仍然收到以下两个警告: 找不到HammerJS。某些角材质组件可能无法正常工作 Hammer.js未加载,无法绑定“

我在做一个材料设计的角度应用。最近我在我的一个页面中发现了内存泄漏。每次加载此页面时,初始化/呈现都会花费越来越多的时间。

此页面包含材质表
mat table
(15列x 100行),每个单元格上都有材质工具提示
mat工具提示
。 经过一些研究,我了解到内存泄漏是由于工具提示(而不是表格)造成的。

Github上的一篇帖子建议删除HammerJS作为修复,请参阅:

现在内存不再泄漏,我仍然收到以下两个警告:

找不到HammerJS。某些角材质组件可能无法正常工作

Hammer.js未加载,无法绑定“longpress”事件

那么,如何告诉角材料我对触摸手势不感兴趣,所以我对HammerJS不感兴趣

框架版本:

  • 角度/角度CLI v6.0.1
  • 角材料v6.4.0
  • 节点v8.11.1
  • TypeScript v2.7.2
  • HammerJS-2.0.8(拆卸前)

我知道这是一个老问题,但对于任何前来寻求答案的人,我在这个GitHub上找到了解决方案

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

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

providers: [{
  provide: HAMMER_LOADER,
  useValue: () => new Promise(() => {})
}]
至于单元测试,我单独添加到每个测试类中

编辑(推荐)

这是最好的答案

使用安装
hammerjs
模块

npm安装hammerjs——保存

然后将以下行添加到您的
polyfills.ts

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

providers: [{
  provide: HAMMER_LOADER,
  useValue: () => new Promise(() => {})
}]
输入“hammerjs/hammer”


你能提供更多关于角度和材料版本的信息吗?目前正在努力使HammerJS成为可选的和懒惰的-loaded@TomaszBłachut,完成。如果这是一个版本问题,我可以更新到最新版本