Я смотрю на свои проекты, в которых я использую HammerJS в приложениях Angular 5, 6 и 7, и я использую другой способ настройки HammerJS
.
Ваша идея отключить поворот / сжатие / панорамирование в определенной ситуации верна и в соответствии с документацией все в порядке.
Hire - мой пример конфигурации без requireFailure
и recognizeWith
:
export class MyHammerConfig extends HammerGestureConfig {
overrides = <any>{
'swipe': {direction: Hammer.DIRECTION_ALL}, // override default settings
'pan': {direction: Hammer.DIRECTION_ALL}
};
}
@NgModule({
imports: [
AppModule
],
providers: [{
provide: HAMMER_GESTURE_CONFIG,
useClass: MyHammerConfig
}],
bootstrap: [AppComponent]
})
export class AppBrowserModule {
}
Таким образом, ваша конфигурация должна выглядеть следующим образом:
export class MyHammerConfig extends HammerGestureConfig {
overrides = <any>{
'rotate': {
direction: Hammer.DIRECTION_ALL,
enable: true
}, // override default settings
'pinch': {
direction: Hammer.DIRECTION_ALL,
enable: true,
recognizeWidth: 'rotate'
},
'pan': {
direction: Hammer.DIRECTION_ALL,
requireFailure: ['rotate, pinch']
}
};
}
Если это не работает для вас, дайте мне знать. Я постараюсь решить твою проблему завтра, потому что у меня нет больше времени сегодня.
Смотрите также документацию Angular о переопределении в соответствии с документацией HammerJS найм .