如何在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值的方法,我将立即更新此帖子。