Ionic 4 скользящий элемент getSlidingRatio не является функцией - PullRequest
0 голосов
/ 08 февраля 2019

Я пытаюсь использовать директиву (ionDrag) для увеличения или уменьшения суммы, поэтому я создал представление, которое выглядит следующим образом:

<ion-item-sliding (ionDrag)="handleSlide($event, tour)">
  <ion-item>
    Drag to add or remove
  </ion-item>
  <ion-item-options side="start">
    <ion-item-option><ion-icon name="remove-circle-outline"></ion-icon></ion-item-option>
  </ion-item-options>

  <ion-item-options side="end">
    <ion-item-option><ion-icon name="add-circle-outline"></ion-icon></ion-item-option>
  </ion-item-options>
</ion-item-sliding>

В контроллере я пишу этот код:

import { Component, OnInit, Input } from '@angular/core';

@Component({
  selector: 'app-places',
  templateUrl: './places.component.html',
  styleUrls: ['./places.component.scss']
})
export class PlacesComponent implements OnInit {
  @Input() tour: any;

  constructor() { }

  ngOnInit() {
  }

  public handleSlide(event: any, tour: any): void {

    const percent: Number = event.getSlidingRatio();

    console.log('Slide ' + event.type + ' : ' + percent);
    if (percent > 0) {
      this.increment();
    } else {
      this.decrement();
    }
  }

  private increment(): any {
    console.log('Up');
  }

  private decrement(): any {
    console.log('Down');
  }
}

Но когда я перетаскиваю элемент, консоль возвращает TypeError. E.getSlidingRatio не является функцией.

Я использую Ionic 4 и заменяю getSlidingPercent на getSlidingRatio в соответствии с документами обновления.

Попытка намека на событие как CustomEvent, но ... getSlidingRatio () не существует для этого типа ... То же самое с CustomEvent

Так что мой вопрос ... Что я делаю неправильнос этим куском кода?

1 Ответ

0 голосов
/ 10 февраля 2019

У меня были некоторые проблемы с тем же, когда в одной из бета-версий я вообще не мог получить доступ к этому, но в последней версии (4.0.0 / 4.0.1) все еще нужен обходной путь, по крайней мередля меня.Моя версия:

"@ionic-native/core": "^5.0.0",
"@ionic/angular": "^4.0.0",

ionic cli: 4.10.2

. С этим, пропустите событие так же, как вы, но я обнаружил следующее: проблема Мне нужно было взломать details.Поэтому, когда console.logging $event, он выводит объект details со свойством ratio, так что это решило мою проблему:

<ion-item-sliding (ionDrag)="handleSlide($event)">
  <!-- ... -->
</ion-item-sliding>

TS:

handleSlide(event: any) {    
  let ratio = event.detail.ratio;
  console.log(ratio);
}

Проверьте версию, и, надеюсь, это поможет!

...