在应用程序初始化时,我从服务器中提取jsonDATETIME
文件,其中描述了我应该显示某些图像的 epoc 时间。即使我能够触发第一个幻灯片更改,我也无法将头绕在触发连续幻灯片上。
import { Http } from '@angular/http';
import { ViewChild } from '@angular/core';
import { Component } from '@angular/core';
import { AlertController, NavController } from 'ionic-angular';
import { Slides } from 'ionic-angular';
import 'rxjs/add/operator/map';
import { FileTransfer, FileTransferObject } from '@ionic-native/file-transfer';
import { File } from '@ionic-native/file';
// declare var cordova:any;
@Component({
selector: 'page-home',
templateUrl: 'home.html'
})
export class HomePage {
@ViewChild(Slides) slides:Slides
fetchedImages: any;
images: any;
imageURI: any;
imageFileName: any;
// storageDirectory = cordova.file.directory;
constructor(
public navCtrl: NavController,
public http: Http,
private transfer: FileTransfer,
private alertCtrl: AlertController,
private file: File
) {
this.http.get('http://solosnet.com/signage/test.cfm')
.map(res=> res.json())
.subscribe(data=> {
this.images = data;
}
);
}
goToNext(index, time) {
var multiplied = time*1000;
var eta_ms = multiplied - Date.now();
console.log(eta_ms);
setTimeout(()=> {
this.slides.slideNext();
console.log('Fired!');
}, eta_ms);
}
startSlides() {
if ( this.images !== undefined) {
this.goToNext(1, this.images[1].DATETIME);
}
}
slideChanged() {
let currentIndex = this.slides.getActiveIndex();
let nextIndex = currentIndex + 1;
console.log('Current index is ', currentIndex);
this.goToNext(nextIndex, this.images[nextIndex].DATETIME);
}
}
有没有办法创建一个时间表,每次Date.now
等于对象DATETIME
时都会跳到下一张幻灯片JSON
?
[
{
UUID: "uuid-johna1",
FILE: "http://movieaddigital.com/output/ba3390-
013f1255f293cfc4334c569d55f6682f-5_1920x1080.jpg",
DATETIME: 1510767348
},
{
UUID: "uuid-john2a",
FILE: "http://movieaddigital.com/output/ho1199-
5e01d368ebc1e2fcc5be429c315afe9e_1920x1080.jpg",
DATETIME: 1510767468
}
]
最后我的HTML
<ion-content>
<ion-slides *ngIf="images" class="image-slider" loop="false"
slidesPerView="1" (ionSlideDidChange)="slideChanged()">
<ion-slide *ngFor="let img of images ">
<img [src]="img.FILE" class="slide-image" />
</ion-slide>
</ion-slides>
</ion-content>