MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

comment implémenter la pagination à défilement infini dans angular 5?

Vous pouvez utiliser ngx-infinite-scroll .

npm install ngx-infinite-scroll --save

Voir la démo plnkr .

Dans votre modèle de composant :

<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>

Dans votre contrôleur de composants :

 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';
  }

Cela se fait avec un service de données simple, mais vous pouvez implémenter une méthode personnalisée récupérant les données de la base de données. Par exemple :

// 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)