Ionic v4 и Angular Не удается получить внутренний текст слайдов, созданных с помощью иона - PullRequest
0 голосов
/ 06 марта 2019

У меня есть массив, отображаемый в <ion-slide> с использованием *ngFor, зацикливаясь вокруг определенного массива:

status: string[] = [
  'Active',
  'Inactive',
  'Ended'
];
@ViewChild('slideWithNav') slides: IonSlides;
@ViewChild('status') slide: IonSlide;

А вот HTML-скрипт:

<ion-slides class="fullWidth" [options]="slideOptsOne" #slideWithNav (ionSlideDidChange)="SlideDidChange($event)">
   <ion-slide #status *ngFor="let s of status" >
    <ion-col>
        {{s}}
    </ion-col>
  </ion-slide>
</ion-slides>

При смене слайдов мне нужно получить значение s, чтобы запустить определенную функцию.

Я пытался получить к нему доступ, используя (ionSlideDidChange):

SlideDidChange(s) {
    console.log(this.slides);
}

Но я не могу найти ничего, связанного с <ion-slide> внутренним значением.

Я попробовал следующий скрипт :

import { Slides } from 'ionic-angular'; 
import { ViewChild, ViewChildren, QueryList } from '@angular/core';

@ViewChildren('CardSlider') cardSliders: QueryList<Slides>;

onCardChanged(){ let slides= this.slides.toArray(); 
    let slider= slides[this.currentSuitIndex]; 
    this.currentCardIndex[this.currentSuitIndex] = cardSlider.getActiveIndex(); 
    console.log('Status', slider.getActiveIndex()); 
}

Но это тоже не сработало. Требуемый вывод, когда я нахожусь в Active Slide, мне нужно утешить «Active» и запустить требуемый метод.

1 Ответ

1 голос
/ 06 марта 2019

Я нашел решение.По-видимому, активированный индекс - это обещание:

SlideDidChange(s)
{
  this.slides.getActiveIndex().then(
     (index)=>{
       this.currentIndex = index;
    });
}

Используя .then(), мы можем получить текущий индекс и использовать SWITCH регистр для индексов регистра и соответственно запускать необходимые методы.

...