使用angular2配置Hammerjs事件

afv*_*ira 5 events gestures hammer.js angular

如何在angular2中配置hammerjs事件?

要使用angular2的hammerjs事件,我只需要在我的html中包含事件,如下所示:

<div (press)="onLongPress($event)"></div>
Run Code Online (Sandbox Code Playgroud)

在这种情况下()默认时间为251毫秒. Hammerjs新闻事件文件

如何配置此时间以获得不同的值?

Bob*_*Bob 11

使用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 
                } ]
})
Run Code Online (Sandbox Code Playgroud)

请注意,我正在使用hack来允许使用Hammer.DIRECTION_ALL的当前值向所有方向滑动.虽然该值可能暂时不会改变,但只要有人通过app模块直接访问Hammer.DIRECTION_ALL值,我就会立即更新此帖子.


Thi*_*ier 2

这并不容易,因为它是由 CustomHammerGesturesPlugin 类在内部处理的。我看到两种方法:

否则我不知道你使用的是哪个版本的Angular2但是Hammer事件有问题(beta.0似乎还可以):