
Это статья о реализации разбивки на страницы в интерфейсе в Angular с использованием уже реализованной разбивки на страницы из серверной части с помощью Django Rest Framework. Здесь мы не используем сторонние библиотеки.
Примечание. Я бэкэнд-инженер и новичок в Angular. Просто подумал, что должен поделиться этим, потому что сначала мне было трудно понять, как это сделать в angular, но я, наконец, понял это. Любые предложения приветствуются и ценятся. Итак, здесь ничего не происходит:
Мы сосредоточимся на интерфейсной реализации, но если вы хотите также узнать, как реализовать разбиение на страницы в Django Rest Framework, вы можете попробовать ссылку на документацию DRF: здесь.
После реализации разбивки на страницы в бэкэнде Django запрос к бэкэнду вернет результаты в следующем формате:
"data": {
"count": ,
"next": "",
"previous": "",
"results": []
}
count: общее количество возвращенных элементов.
next: URL-адрес следующих элементов после разбивки на страницы.
предыдущий: URL-адрес предыдущих элементов после перехода к следующему. набор предметов
результаты: элементы, запрошенные из серверной части, явно разбиты на страницы, т.е. если для разбивки на страницы было задано 10 элементов, а было возвращено 15, результаты вернет 10 элементов по первому запросу, затем после перехода по URL-адресу в следующем, результаты вернут оставшиеся 5.
Введите Angular
Мы будем использовать небольшую демонстрацию серверного API, который возвращает доступные свойства пользователю. Предположим, что свойств много, поэтому разбивка на страницы была реализована в бэкэнде.
Сервис
Наш сервис делает запрос к backend API.
Здесь наблюдатель getProperties принимает URL-адрес в качестве аргумента и отправляет запрос GET к внутреннему API для получения свойств.
Компонент
Здесь, когда компонент инициализируется, свойства загружаются на страницу. В функции setProperties мы вызываем наблюдателя getProperties, который возвращает ответ от внутреннего API. На основе этого ответа мы устанавливаем свойства, следующее и предыдущее свойства.
Функция fetchNext вызывается кнопкой "Далее" в шаблоне Html компонентов, как и функция fetchPrevious, которая вызывается кнопкой "Назад" в шаблоне Html, расположенном ниже.
После нажатия функция fetchNext будет вызывать наблюдателя getProperties с компонентами next property в качестве URL-адреса. аргумент. Это приведет к получению следующих элементов с разбивкой на страницы из API серверной части и установит для компонентов свойства свойство следующие элементы с разбивкой на страницы, таким образом обновив страницу и отобразив их. Аналогичным образом работает функция fetchPrevious.
Вот и все, вуаля. Так просто, верно! Надеюсь, это было полезно и важно.