На моей странице есть экземпляр ion-slides
, отображающий несколько изображений:
<ion-slides class="to-top" pager>
<ion-slide *ngFor="let image of detailImages">
<img src="{{ image }}" alt="">
</ion-slide>
</ion-slides>
Коллекция detailImages
загружается в начале загрузки страницы и представляет собой набор строк, содержащих URL-адреса изображений, которыеукажите на моего медиа-провайдера.Вот где я загружаю detailImages (загружается при загрузке страницы):
loadDetailImages(ParentID: number) {
this.detailService.getImagesCollection(ParentID).pipe(
map(resp => {
//Some mapping
})
).subscribe(result => {
for (let i = 0; i < result.length; i++) {
let urlString = "http://res.cloudinary.com/someuser/image/v123456/" + result[i].CloudinaryTag + ".jpg"
this.detailImages.push(urlString)
}
});
}
Пока что эта реализация работает хорошо.Однако всякий раз, когда я удаляю элемент из detailImages
, весь пейджер становится пустым (белым) без прокрутки.
Вот код, который удаляет изображение из коллекции:
deleteImage(imageURL: any) {
this.detailService.deleteDetailImage({ imageURL: imageURL }).pipe(
map(resp => {
//Do some mapping working
})
).subscribe(result => {
if (result) {
this.detailImages.splice(this.slides.getActiveIndex(),1);
this.slides.update();
this.toastCtrl.create({ message: "Image Removed", showCloseButton: true,duration:3000 }).present();
}
});
}
Я попытался обновить ползунок:
@ViewChild(Slides) slides: Slides;
// and then after remove item call this
this.slides.update();
Но это не дало эффекта.Я не уверен, что это проблема Angular или Ionic.
Я использую Angular 5.0.3 и Ionic-Angular 3.9.2