Я очень новичок в angular, и у меня есть проблема, которая вначале выглядела просто!
Я пытаюсь реализовать этот angular paginator: https://material.angular.io/components/paginator/examples
В этом компоненте я получаю данные из бэкэнда методом filterMessages
. Теперь, в этих данных есть общее количество элементов (длина для paginator) , которое я получаю, используя values.totalElements
. Я назначаю это значение переменной totalLength
. Теперь я хочу обновить lentgh
страницы с этим новым значением.
export class MessageComponent {
constructor(...) {
}
totalLength: number;
filterMessages(params: Params) {
this.service.getMessages(params).subscribe(values => { // getMessages gets the data from the backend
this.totalLength = values.totalElements // here I get an value
values = values.content;
...
}, error => {
...
});
}
// MatPaginator Inputs
length = this.totalLength; // I want to update this with the value from the backend
pageSize = 10;
pageSizeOptions: number[] = [];
// MatPaginator Output
pageEvent: PageEvent;
}
Вот реализация. html, такая же, как в angular примере материала
<mat-paginator [length]="length"
[pageSize]="pageSize"
[pageSizeOptions]="pageSizeOptions"
(page)="pageEvent = $event">
</mat-paginator>
<div *ngIf="pageEvent">
<h5>Page Change Event Properties</h5>
<div>List length: {{pageEvent.length}}</div>
<div>Page size: {{pageEvent.pageSize}}</div>
<div>Page index: {{pageEvent.pageIndex}}</div>
</div>
Буду признателен за любую идею, предложение или пример.