Angular 9从不调用HammerGestureConfig.buildHammer

问题描述 投票:0回答:2

更新到Angular 9之后,不再可以使用Hammer.js。我们如下扩展了角度HammerGestureConfig。]

import {HammerGestureConfig} from '@angular/platform-browser';
import {Injectable} from '@angular/core';

@Injectable({providedIn: 'root'})
export class HammerConfig extends HammerGestureConfig {

  overrides = <any>{
    'pan': {
      direction: Hammer.DIRECTION_ALL,
      threshold: 5
    } // override default settings
  };

  buildHammer(element) {
    const recognizers = [];
    if (element.hasAttribute('data-hammer-pan')) {
      recognizers.push([Hammer.Pan]);
    }
    if (element.hasAttribute('data-hammer-pan-x')) {
      recognizers.push([Hammer.Pan, {direction: Hammer.DIRECTION_HORIZONTAL}]);
    }
    if (element.hasAttribute('data-hammer-tap')) {
      recognizers.push([Hammer.Tap]);
    }
    if (element.hasAttribute('data-hammer-pinch')) {
      recognizers.push([Hammer.Pinch]);
    }
    if (element.hasAttribute('data-hammer-rotate')) {
      recognizers.push([Hammer.Rotate]);
    }
    if (element.hasAttribute('data-hammer-press')) {
      recognizers.push([Hammer.Press]);
    }
    if (element.hasAttribute('data-hammer-swipe')) {
      recognizers.push([Hammer.Swipe]);
    }
    const hammer = new Hammer.Manager(element, {
      recognizers: recognizers,
      touchAction: 'auto'
    });
    return hammer;
  }
}

[HammerConfig已添加到应用程序模块。:

  providers: [
    {
      provide: HAMMER_GESTURE_CONFIG,
      useClass: HammerConfig
    }
  ],

据我所知,应调用方法buildHammer,但从不调用。

可能是什么问题?

angular hammer.js angular9
2个回答
0
投票

[HammerModule需要导入到Angular应用程序模块。

  imports: [
    ...
    HammerModule
  ],
  providers: [
    {
      provide: HAMMER_GESTURE_CONFIG,
      useClass: HammerConfig
    },
    ...
  ],
  ...

ivy:使Hammer支持树状摇晃。以前在常春藤应用程序,默认情况下包括Hammer提供程序。有了这个提交,需要Hammer支持的应用程序必须在其导入HammerModule根模块。 (#32203)(de8ebbd

https://github.com/angular/angular/blob/9.0.0/CHANGELOG.md


0
投票

升级到Angular 9后,由于它已从我的hammerjs中删除,因此我必须重新npm-install package.json。我会检查你的还在。

© www.soinside.com 2019 - 2024. All rights reserved.