apply this when you need to use a scroll segment
home.html
<ion-segment [(ngModel)]="choosetab" >
<ion-segment-button value="1" (click)="TabChanges()">
page 1
</ion-segment-button>
<ion-segment-button value="2" (click)="TabChanges()">
page 2
</ion-segment-button>
<ion-segment-button value="3" (click)="TabChanges()">
page 3
</ion-segment-button>
</ion-segment>
<div [ngSwitch]="choosetab">
<ion-slides (ionSlideWillChange)="slideChanged()" >
<ion-slide>
<ion-list *ngSwitchCase="'1'" >
</ion-list>
</ion-slide>
<ion-slide>
<ion-list *ngSwitchCase="'2'" >
</ion-list>
</ion-slide>
<ion-slide>
<ion-list *ngSwitchCase="'3'" >
</ion-list>
</ion-slide>
</ion-slides>
</div>
home.ts
slideChanged() {
let currentIndex = this.slides.getActiveIndex();
if (currentIndex == 0) {
this.choosesegment = '1'
}
else if (currentIndex == 1) {
this.choosesegment = '2'
}
else {
this.choosesegment = '3'
}
}
use this for each button of a segment, (press) = "TabsChanges ()"
TabChanges() {
let len: number = this.slides.length()
let currentIndex = this.slides.getActiveIndex();
if (len > 0) {
if (this.choosesegment === '1') {
if (currentIndex != 0) {
this.slides.slideTo(0)
}
}
else if (this.choosesegment === '2') {
if (currentIndex != 1) {
this.slides.slideTo(1)
}
}
else if (this.choosesegment === '3') {
if (currentIndex != 2) {
this.slides.slideTo(2)
}
}
}
}
don't forget to import slides from ion angular
import {Slides} from 'ionic-angular';
import {ViewChild } from '@angular/core';
@ViewChild(Slides) slides: Slides;
source
share