Bạn có thể sử dụng ngx -finity-scroll .
npm install ngx-infinite-scroll --save
Xem bản trình diễn plnkr .
Trong mẫu thành phần của bạn:
<div class="search-results"
data-infinite-scroll
debounce
[infiniteScrollDistance]="scrollDistance"
[infiniteScrollUpDistance]="scrollUpDistance"
[infiniteScrollThrottle]="throttle"
(scrolled)="onScrollDown()"
(scrolledUp)="onUp()">
<p *ngFor="let i of array">
{{ i }}
</p>
</div>
Trong bộ điều khiển thành phần của bạn:
onScrollDown (ev) {
console.log('scrolled down!!', ev);
// add another 10 items
const start = this.sum;
this.sum += 10;
this.appendItems(start, this.sum);
this.direction = 'down'
}
onUp(ev) {
console.log('scrolled up!', ev);
const start = this.sum;
this.sum += 10;
this.prependItems(start, this.sum);
this.direction = 'up';
}
Điều này được thực hiện với một dịch vụ dữ liệu đơn giản, nhưng bạn có thể triển khai một phương pháp tùy chỉnh để truy xuất dữ liệu từ cơ sở dữ liệu. Ví dụ:
// Page 1
db.comments.find().limit(10)
// Page 2
db.comments.find().skip(10).limit(10)
// Page 3
db.comments.find().skip(10).limit(10)