如何在angular2中配置Hammerjs事件?

要在angular2中使用Hammerjs事件,我只需要在html上包含如下事件:

<div (press)="onLongPress($event)"></div>

在这种情况下(默认为),时间为251毫秒。
Hammerjs press event documentation

我该如何配置这个时间使其具有不同的值(value)?

最佳答案

使用Angular 2.0.1,实际上有一种直接配置Hammerjs的方法:

// app.module.ts

import { HammerGestureConfig, HAMMER_GESTURE_CONFIG } from '@angular/platform-browser';

export class MyHammerConfig extends HammerGestureConfig  {
  overrides = <any>{
      // override hammerjs default configuration
      'pan': {threshold: 5},
      'swipe': {
           velocity: 0.4,
           threshold: 20,
           direction: 31 // /!\ ugly hack to allow swipe in all direction
      }
  }
}

@NgModule({
  imports:      [ ...],
  declarations: [ ... ],
  bootstrap:    [ ... ],
  providers:    [ {
                    provide: HAMMER_GESTURE_CONFIG,
                    useClass: MyHammerConfig
                } ]
})

请注意,我正在使用一种技巧,通过使用Hammer.DIRECTION_ALL的当前值来向各个方向滑动。尽管该值可能暂时不会更改,但是一旦有人窃窃私语直接从app模块访问Hammer.DIRECTION_ALL值的方法,我将立即更新此帖子。

08-28 23:23