簡體   English   中英

從 Angular-Material 項目中刪除 HammerJS

[英]Remove HammerJS from a Angular-Material project

我正在使用 Material Design 開發一個 Angular 應用程序。 最近我在我的一個頁面中發現了內存泄漏。 每次加載此頁面時,都會花費越來越多的時間來初始化/渲染。

此頁面包含一個 Material 表格mat-table (15 列 x 100 行),每個單元格上都有一個 Material Tooltip mat-tooltip 經過一番研究,我了解到內存泄漏是由於工具提示(而不是表格)造成的。

Github 上的一篇文章建議刪除 HammerJS 作為修復,請參閱: https : //github.com/angular/material2/issues/4499

現在內存不再泄漏,我仍然收到以下 2 個警告:

找不到 HammerJS。 某些 Angular Material 組件可能無法正常工作。

Hammer.js 未加載,無法綁定 'longpress' 事件。

那么如何告訴 Angular-Material 我對觸摸手勢不感興趣,因此我對 HammerJS 不感興趣?

框架版本:

  • Angular/ Angular CLI v6.0.1
  • Angular-Material v6.4.0
  • 節點 v8.11.1
  • 打字稿 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 --save

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

導入 'hammerjs/hammer';

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM