Я понял это.
Оказывается, таблица вместе с paginator были внутри div с оператором ngIf:
<div *ngIf="!isLoading">
...
</div>
Это означало, что paginator не отображалсяпока данные не были загружены в таблицу.
Итак, во-первых, я взял инициализацию MatTableDataSource и назначение paginator в ngAfterViewInit ().В loadEndpoints () я присвоил endpointList переменной вместо этого:
this.endpointList = endpointList
Во-вторых, я поместил тайм-аут в ngAfterViewInit (), который запускается, если isLoading имеет значение true или если размер списка равен 0. В противном случаеЗатем я инициализирую MatTableDataSource с помощью переменной endpointList и назначаю ей paginator:
ngAfterViewInit() {
if (this.isLoading || this.listSize === 0) {
setTimeout(() => {
this.ngAfterViewInit();
}, 1000);
} else {
this.dataSource = new MatTableDataSource<any>(this.endpointList);
this.dataSource.paginator = this.paginator;
}
}
И это работает!