Я пытаюсь реализовать бесконечную прокрутку для загрузки элементов в список динамически, когда пользователь прокручивает список вниз, но когда я получаю доступ к концу и итогу, он становится таким же, мне нужно проверить, достигнут ли последний элемент, а затем добавить новый элементы в список. проблема в том, что конечная и общая сумма одинаковы и срабатывает каждый раз
HTML
<cdk-virtual-scroll-viewport style="height: 300px" itemSize="5" (scrolledIndexChange)="nextBatch($event)">
<li *cdkVirtualFor="let row of auditDetails; let j=index;" style="height: 100px; box-shadow: 0 1px 1px black;">{{j}}</li>
</cdk-virtual-scroll-viewport>
TS
auditDetails = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
@ViewChild(CdkVirtualScrollViewport) viewPort: CdkVirtualScrollViewport;
ngAfterViewInit() { }
nextBatch(currIndex: number, items: any[]) {
const start = this.viewPort.getRenderedRange().start;
const end = this.viewPort.getRenderedRange().end;
const total = this.viewPort.getDataLength();
console.log(`end is ${end} total is ${total}`)
if (end == total) {
console.log("end reached increase page no")
}
}
trackByIdx(i: number) {
return i;
}
Ссылка на Stackblitz https://stackblitz.com/edit/cdk-infinite-scroll-ufuewv < / а>