Вертикальный свиток не работает с HammerJS и Angular2

У меня проблема с использованием HammerJS с Angular2. У меня есть карусель (на основе карусели бутстрапа с обработчиками событий Angular2), где я слушаю события проведите пальцем влево и вправо. Салфетка сама работает отлично. Проблема в том, что, поскольку я использую HammerJS, я не могу прокручивать вверх/вниз по моему компоненту карусели, и поскольку это полный размер в виде видового экрана, это огромная проблема.

Как решить эту проблему?

Платформа:
Angular2 2.1.2
Samsung Galaxy S2 с Android 5.1.1
Google Chrome для Android: 54.0.2840.85

Ответы

Ответ 1

Получил это!

В вашем AppModule:

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

export class MyHammerConfig extends HammerGestureConfig {
    overrides = <any> {
        'pinch': { enable: false },
        'rotate': { enable: false }
    }
}

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

Теперь выполняется вертикальная прокрутка после отключения pinch и rotate. Пока не удалось найти какой-либо другой способ. Я не уверен, что произойдет с событиями pinch и rotate (я думаю, они были бы отключены, я думаю). Но даже без этой конфигурации, добавив (pinch)="onPinch($event)", ничего не сделал.

Angular версия в моем проекте: 2.4.1

Протестировано:

  • Chrome для Windows (на поверхности, поэтому реальный сенсорный экран - не просто эмулируется) v 55.0.2883.87 м (64-разрядная версия)
  • Chrome для Android - v 55.0.2883.91