Я пытаюсь выяснить, почему массив [], даже если я вызываю API в методе ngOnInit (), но если я нажимаю кнопку следующей страницы на моей странице, массив больше не равен [].
Что для меня странного в том, что если я использую
*ngFor="let item of users"
покажет, без проблем.
Файл TS:
export class DisplayAccountsComponent implements OnInit {
// MatPaginator INPUT
length: number;
pageSize = 1;
pageSizeOptions: number[] = [1, 5, 10 , 25, 50];
users: User[] = [];
activePageDataChunk = [];
constructor(private _displayAccountService: DisplayAccountsService) {
}
ngOnInit() {
this.getAllUsers();
this.activePageDataChunk = this.users.slice(0, this.pageSize);
console.log(this.users);
console.log(this.activePageDataChunk);
}
onPageChanged(e) {
const firstCut = e.pageIndex * e.pageSize;
const secondCut = firstCut + e.pageSize;
this.activePageDataChunk = this.users.slice(firstCut, secondCut);
console.log(this.activePageDataChunk);
}
getAllUsers() {
this._displayAccountService.getAllUsers().subscribe(
data => {
this.users = data;
this.length = this.users.length;
},
err => {
console.log(err);
}
);
}
А также файл HTML:
<div *ngFor="let user of activePageDataChunk">
<p>{{user.firstName}} | {{user.lastName}} | {{user.email}}</p>
</div>
<mat-paginator [length]="length" [pageSize]="pageSize"
[pageSizeOptions]="pageSizeOptions" (page)="onPageChanged($event)">
</mat-paginator>
Как я уже сказал, когда страница загружается пользователями, activePageDataChunk равны [], но если я нажимаю следующую страницу, переменные больше не равны [].
Заранее спасибо за любую помощь!