libs/core/src/lib/services/taly-page-data.service.ts
This service will be embed into AbstractBuildingBlockPage
which acts as the base class of all Building Block Pages.
Any page being created can report it's set of TalyPageData
so it can be used in a different place, outside of the actual page component.
Methods |
Accessors |
setPageId | ||||||
setPageId(id: string)
|
||||||
Parameters :
Returns :
void
|
storeData | ||||||
storeData(data: PageDataForTemplate)
|
||||||
Parameters :
Returns :
void
|
pageData$ |
getpageData$()
|
pageData |
getpageData()
|
pageId$ |
getpageId$()
|
import { Injectable } from '@angular/core';
import { BehaviorSubject, ReplaySubject } from 'rxjs';
import { type PageDataForTemplate } from './taly-page-data.model';
/**
* This service will be embed into `AbstractBuildingBlockPage`
* which acts as the base class of all Building Block Pages.
*
* Any page being created can report it's set of `TalyPageData`
* so it can be used in a different place, outside of the actual page component.
*/
@Injectable({ providedIn: 'root' })
export class TalyPageDataService {
private _currentPageData!: PageDataForTemplate;
private _pageDataSubject = new BehaviorSubject<PageDataForTemplate>({});
private _pageIdSubject = new ReplaySubject<string>(1);
storeData(data: PageDataForTemplate) {
this._currentPageData = data;
this._pageDataSubject.next(this._currentPageData);
}
get pageData$() {
return this._pageDataSubject.asObservable();
}
get pageData() {
return this._currentPageData;
}
setPageId(id: string) {
this._pageIdSubject.next(id);
}
get pageId$() {
return this._pageIdSubject.asObservable();
}
}