Разбивка на страницы с Dynamoose.js и Angular6 - PullRequest
0 голосов
/ 04 июля 2019

Есть ли хорошие практики для использования Dynomoose.js для реализации нумерации страниц с Angular.Я хотел бы использовать scan.limit () для получения некоторого количества фильмов из БД, например, 20. Как я могу получить второе сканирование 20-40 фильмов и 40-60 фильмов?Должен ли я использовать scan.startAt (ключ) для получения дополнительных данных?

exports.listing = (req, res, next) => {
  MoviesModel.scan()
    .exec()
    .then(movies=> {
      if(movies.lastKey){
        MovieModel.scan().startAt(movies.lastKey).exec(function(err, movies){
          res.json(movies);
        });
      }  
     })
    .catch(err => next(err));
};

1 Ответ

1 голос
/ 04 июля 2019

Простой способ всегда заключается в том, чтобы выполнить нумерацию страниц на стороне клиента, используя, например, ngx-pagination см. здесь :

    <ul>
      <li *ngFor="let item of collection | paginate: { itemsPerPage: 10, currentPage: p }"> ... </li>
    </ul>

    <pagination-controls (pageChange)="p = $event"></pagination-controls>

В серверной части просто верните все свои записи Model.scan().exec() и хранить их в collection свойстве:

exports.listing = (req, res, next) => {
  MoviesModel.scan()
    .exec()
    .then(movies=> {
      if(movies.lastKey){
        MovieModel.scan().exec(function(err, movies){
          res.json(movies);
        });
      }  
     })
    .catch(err => next(err));
};
...