У меня есть компонент, который загружает данные и отображает их:
ngOnInit() {
this.getPage();
this.eventsService.subjectFilterDistributionReset.subscribe((value) => {
if (value) {
this.paginationService.reset();
this.loadPage();
}
});
this.eventsService.subjectFilterDistribution.pipe(filter((filterUrl) => filterUrl)).subscribe((filterUrl) => {
const page = 1;
this.paginationService.setFilterBy(filterUrl);
this.paginationService.setCurrentPage(page);
this.paginationService.calculateOffsetLimit(page);
this.loadPage();
});
this.eventsService.subjectSortingDistribution.pipe(filter(Boolean)).subscribe((sortedList: ListItem[]) => {
this.paginationService.setSortBy(getSortingString(sortedList));
this.loadPage();
});
}
Как видите, по умолчанию он вызывает this.getPage();
:
public getPage(page: number = 1): void {
this.loadDataRequest();
}
Также у него есть слушатель:
this.eventsService.subjectFilterDistribution.pipe(filter((filterUrl) => filterUrl)).subscribe((filterUrl) => {})
Проблема в том, что когда я направляюсь к этому компоненту и отправляю сообщение this.eventsService.subjectFilterDistribution
.
Он вызывает this.getPage();
, потому что он находится в ngOnIinit.
Итак, как разделить загрузку по умолчанию и по событиям?
Проблема в том, что мне нужно вызвать метод this.loadPage();
только один раз.
- Когда компонент загружен
- Когда приходит тема события