Номер последней страницы (нумерация страниц на стороне сервера, Ng2-Smart-Table)

Я использую компонент Ng2-Smart-Table с разбивкой на страницы на стороне сервера. Я протестировал пример (https://github.com/akveo/ng2-smart-table/blob/master/src/app/pages/examples/server/advanced-example-server.component.ts )

Анализируя запросы из приведенных выше примеров, я заметил, что ответа нет ни от чего, кроме записей / объектов JSON: ИЗОБРАЖЕНИЕ - Пример ответа.

СОМНЕНИЕ: Как компонент узнает, какая страница последняя? (В примере 500): ИЗОБРАЖЕНИЕ - пример разбивки на страницы последней страницы

Я пытаюсь понять реализовать в своем API, потому что я буду реализовывать немного иначе, чем в примере, запрашивая только в сервисе. Итак, я хочу знать, как компонент получает значение последней страницы.


person Xablau Developer    schedule 10.01.2018    source источник


Ответы (2)


Концепция разбиения на страницы основана на приеме и пропуске данных. Допустим, ваша сетка показывает 10 записей, тогда значение take будет 10, и если вы находитесь на первой странице, то значение skip будет равно нулю. Для этого понятия используются следующие формулы:

skip = (pageNo. - 1 ) * take

Надеюсь, это поможет

person Sandip Jaiswal    schedule 10.01.2018
comment
Пейджинг у меня получился. Непонятно, как компонент узнает, что есть 500 страниц (при нажатии на стрелку последней страницы), если в ответ приходит только 10 элементов (из-за дубля 10)? - person Xablau Developer; 10.01.2018
comment
Они используют индекс для рендеринга подкачки. Они также используют общее количество записей и размер страницы для рендеринга пейджера. Когда вы используете разбиение на страницы на стороне сервера, вам необходимо указать общее количество записей, чтобы показать фактическое разбиение на страницы, потому что вы получаете только ограниченное количество записей, а не целые записи из базы данных. - person Sandip Jaiswal; 10.01.2018
comment
Ладно, чувак. Я понял вашу точку зрения. Но мой вопрос не в теории и не в расчетах. Но о том, КАК компонент делает, чтобы получить общую ценность страниц. Я знаю, что API передает ему всю сумму, но я хочу понять, КАК это делается, поскольку в документации он не отображается, а в примере, который я тестировал, у него нет запроса с этим параметром и ни одного из ответов возвращает эту сумму. - person Xablau Developer; 10.01.2018

Я нашел ответ на свой вопрос XD. После отладки кода компонента в файле server.data-source.js я обнаружил, как работает компонент: он выполняет две проверки и может извлечь все строки двумя способами. Сначала он проверяет заголовок ответа, если есть Key, равный значению, помещенному в Key totalKey экземпляра объекта ServerDataSource в вашем приложении angular.

Если его не существует, он просматривает список объектов JSON ответа, также по тому же ключу.

person Xablau Developer    schedule 11.01.2018