(swipeLeft) не работает с молотком js - что не так? - PullRequest
0 голосов
/ 31 марта 2020

Я хочу, чтобы мое мобильное приложение (с помощью Ioni c) при перелистывании переходило на следующую страницу, но ни устройство не распознает мое прикосновение, ни веб-страницу на localhost.

Поскольку Терминал не показывает мне ошибок, я немного запутался.

Как это исправить?

app.module.ts:

import 'hammerjs';
import * as Hammer from 'hammerjs';
import { HammerGestureConfig, HAMMER_GESTURE_CONFIG} from '@angular/platform-browser';

export class HammerConfig extends HammerGestureConfig {
  overrides = {
    swipe: { direction: Hammer.DIRECTION_ALL },
  } as any;
}

tab1.page.ts:

import { NavController } from '@ionic/angular';
import { Tab2Page } from '../tab2/tab2.page';
import { Tab3Page } from '../tab3/tab3.page';

swipeLeftEvent(e) {
   if (e.direction == 2) {
       //direction 2 = left page
       this.navCtrl.navigateForward('tab3.page.html')
   }
}

swipeRightEvent(e) {
   if (e.direction == 4) {
       //direction 4 = right page.
       this.navCtrl.navigateForward('tab2.page.html')
   }
}

tab1.page. html:

<ion-content (swipeLeft)="swipeLeftEvent($event)" (swipeRight)="swipeRightEvent($event)">
  <div *ngIf="!type">
  </div>

  <ion-list *ngIf="type && !sub_type">
  </ion-list>

  <ion-list *ngIf="sub_type">
    </ion-list>
</ion-content>

Код похож на других страницах.

Спасибо столько!

1 Ответ

0 голосов
/ 20 апреля 2020

попробуйте это:

import { HammerGestureConfig, HAMMER_GESTURE_CONFIG } from '@angular/platform-browser';
import { HammerModule } from '@angular/platform-browser';
import * as Hammer from 'hammerjs';

@Injectable()
export class MyHammerConfig extends HammerGestureConfig {
    buildHammer(element: HTMLElement): any {
      return new Hammer(element, {
        swipe: { direction: Hammer.DIRECTION_ALL }
      });
   }
}

imports: [
    HammerModule
],
providers: [
    {
      provide: HAMMER_GESTURE_CONFIG,
      useClass: MyHammerConfig,
    },
]
...