import {Injectable} from '@angular/core'; import {Observable} from "rxjs/Observable"; import {Subject} from "rxjs/Subject"; @Injectable() export class ImageService { private imagesUpdatedSource = new Subject() private imageSelectedIndexUpdatedSource = new Subject() private showImageViewerSource = new Subject() imagesUpdated$ : Observable = this.imagesUpdatedSource.asObservable() imageSelectedIndexUpdated$ : Observable = this.imageSelectedIndexUpdatedSource.asObservable() showImageViewerChanged$ : Observable = this.showImageViewerSource.asObservable() updateImages(images: any[]) { this.imagesUpdatedSource.next(images) } updateSelectedImageIndex(newIndex: number) { this.imageSelectedIndexUpdatedSource.next(newIndex) } showImageViewer(show: boolean) { this.showImageViewerSource.next(show) } }