Здесь я хочу передать данные из общей службы фильтров в заголовок сводки страницы, где я передаю данные в LastUpdatedTime в файле Release-decision-comComponent.ts.
Сервисный файл фильтра:
lastUpdatedTime : String;
файл Release-Decision-Component.ts:
this.releaseManagementService.getGlobalConfigParameters().subscribe((tableData: ParametersData) => {
this.filterService.lastUpdatedTime = tableData.createdAt;
})
Файл page-summary-header.html:
<cds-page-title
type = "primary"
[pageTitle] = "pageTitle"
[subTitle] = "subTitle">
</cds-page-title>
Файл page-summary-header.ts:
this.subTitle = `${'releaseManagement.lastUpdated'}:${this.filterService.lastUpdatedTime}`;
Проблема: когда пользователь впервые заходит на сайт, отображается значение LastUpdatedTime undefined
. Если я приду еще раз, он покажет правильное значение LastUpdatedTime.
Сервисный файл фильтра:
Использует BehaviorSubject для отслеживания LastUpdatedTime. Предоставляет наблюдаемый объект (lastUpdatedTime$) для отправки обновлений времени.
import { BehaviorSubject } from 'rxjs';
export class FilterService {
private lastUpdatedTimeSubject = new BehaviorSubject<string>(null);
lastUpdatedTime$ = this.lastUpdatedTimeSubject.asObservable();
setLastUpdatedTime(time: string) {
this.lastUpdatedTimeSubject.next(time);
}
}
Компонент решения о выпуске (release-decision-comComponent.ts)
Fetches global config parameters.
Sets lastUpdatedTime in FilterService.
this.releaseManagementService.getGlobalConfigParameters().subscribe((tableData: ParametersData) => {
this.filterService.setLastUpdatedTime(tableData.createdAt);
});
Компонент заголовка сводной информации о странице (page-summary-header.ts)
Subscribes to lastUpdatedTime$ to update subTitle dynamically.
this.filterService.lastUpdatedTime$.subscribe(lastUpdatedTime => {
this.subTitle = `releaseManagement.lastUpdated: ${setDateFormatForTable(lastUpdatedTime)}`;
});
HTML-шаблон (page-summary-header.html)
Binds pageTitle and subTitle to the component's properties
<cds-page-title
type = "primary"
[pageTitle] = "pageTitle"
[subTitle] = "subTitle">
</cds-page-title>