From 90126888bbede4e3f0e59146e52855bcd16f2645 Mon Sep 17 00:00:00 2001 From: Lotte Hofstede Date: Fri, 1 Jun 2018 10:06:50 +0200 Subject: [PATCH] fixed with subject instead of changedetection hack --- src/app/+item-page/full/full-item-page.component.ts | 8 ++++---- src/app/+item-page/simple/item-page.component.ts | 9 ++++----- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/src/app/+item-page/full/full-item-page.component.ts b/src/app/+item-page/full/full-item-page.component.ts index 97e08099c1..778478a6b6 100644 --- a/src/app/+item-page/full/full-item-page.component.ts +++ b/src/app/+item-page/full/full-item-page.component.ts @@ -14,6 +14,7 @@ import { MetadataService } from '../../core/metadata/metadata.service'; import { fadeInOut } from '../../shared/animations/fade'; import { hasValue } from '../../shared/empty.util'; +import { BehaviorSubject } from 'rxjs/BehaviorSubject'; /** * This component renders a simple item page. @@ -30,13 +31,12 @@ import { hasValue } from '../../shared/empty.util'; }) export class FullItemPageComponent extends ItemPageComponent implements OnInit { - itemRDObs: Observable>; + itemRDObs: BehaviorSubject>; metadataObs: Observable; - constructor(route: ActivatedRoute, items: ItemDataService, metadataService: MetadataService, - ref: ChangeDetectorRef) { - super(route, items, metadataService, ref); + constructor(route: ActivatedRoute, items: ItemDataService, metadataService: MetadataService) { + super(route, items, metadataService); } /*** AoT inheritance fix, will hopefully be resolved in the near future **/ diff --git a/src/app/+item-page/simple/item-page.component.ts b/src/app/+item-page/simple/item-page.component.ts index cbcad3aa99..55dfe8a7b0 100644 --- a/src/app/+item-page/simple/item-page.component.ts +++ b/src/app/+item-page/simple/item-page.component.ts @@ -13,6 +13,7 @@ import { MetadataService } from '../../core/metadata/metadata.service'; import { fadeInOut } from '../../shared/animations/fade'; import { hasValue } from '../../shared/empty.util'; import * as viewMode from '../../shared/view-mode'; +import { BehaviorSubject } from 'rxjs/BehaviorSubject'; /** * This component renders a simple item page. @@ -32,17 +33,16 @@ export class ItemPageComponent implements OnInit { private sub: any; - itemRDObs: Observable>; - thumbnailObs: Observable; + itemRDObs?: BehaviorSubject> = new BehaviorSubject(new RemoteData(true, true, false, null, null)); + ElementViewMode = viewMode.ElementViewMode; constructor( private route: ActivatedRoute, private items: ItemDataService, private metadataService: MetadataService, - private ref: ChangeDetectorRef ) { } @@ -56,8 +56,7 @@ export class ItemPageComponent implements OnInit { initialize(params) { this.id = +params.id; - this.itemRDObs = this.items.findById(params.id); - this.ref.detectChanges(); + this.items.findById(params.id).filter((rd) => hasValue(rd.payload)).first().subscribe((item) => this.itemRDObs.next(item)); this.metadataService.processRemoteData(this.itemRDObs); this.thumbnailObs = this.itemRDObs .map((rd: RemoteData) => rd.payload)