(swipeup) 在 Angular 4 中没有触发 Hammerjs

(swipeup) isn't triggering in Angular 4 with Hammerjs

我注意到指令 (swipeup) 似乎不起作用: 我试过使用 (swipeleft) 并且有效:

<div [@myAnimation] (swipeup)="showActionBar = false" fxFlex="56px" *ngIf="showActionBar" fxLayoutWrap fxLayoutAlign="start center"fxLayoutGap="8px" class="overview-actions">

有没有人对此有解决方案/解决方法。我已经看过但没有找到与我的问题相关的解决方案。

谢谢, J.

根据 this 你能试试这个吗?

var hammertime = new Hammer(document.body);

hammertime.get('swipe').set({ direction: Hammer.DIRECTION_ALL });

并且根据文档 “默认情况下,它添加了一组点击、双击、按下、水平平移和滑动,以及多点触控捏和旋转识别器。默认情况下禁用捏和旋转识别器,因为它们会使元素阻塞,但您可以启用他们通过电话:

hammertime.get('pinch').set({ enable: true });
hammertime.get('rotate').set({ enable: true });

为平移和滑动识别器启用垂直或所有方向:

hammertime.get('pan').set({ direction: Hammer.DIRECTION_ALL });
hammertime.get('swipe').set({ direction: Hammer.DIRECTION_VERTICAL }); 

您可以从@angular/platform-browser导入锤子配置并覆盖它。默认情况下,向上和向下滑动是关闭的,因为它们可能会在用户尝试滚动时给他们带来问题。

app.module.ts

  import * as Hammer from 'hammerjs';
  import { HammerGestureConfig, HAMMER_GESTURE_CONFIG } from '@angular/platform-browser';

  export class HammerConfig extends HammerGestureConfig {
    overrides = <any>{
      'swipe': { direction: Hammer.DIRECTION_ALL }
    };
  }

  @NgModule({
    declarations: [
      AppComponent
    ],
    imports: [
      BrowserModule
    ],
    providers: [
      {
        provide: HAMMER_GESTURE_CONFIG,
        useClass: HammerConfig
      }
    ],
    bootstrap: [AppComponent]
  })
  export class AppModule { }