Как реализовать пагинацию в Angular JS? [С практическим примером]

Опубликовано: 2020-04-20

Прежде чем мы перейдем к пониманию того, как работает пагинация в Angular JS и как она реализована в этой среде, давайте рассмотрим ее шаг за шагом и начнем с обсуждения Angular JS и нумерации страниц в целом.

Оглавление

Что такое Ангуляр JS?

Angular JS является одним из наиболее предпочтительных структурных фреймворков для создания динамических веб-приложений. Он позволяет разработчикам использовать HTML в качестве языка шаблонов и даже допускает расширение синтаксиса HTML для обеспечения четкого и лаконичного выражения различных компонентов веб-приложения.

Он поставляется с возможностями внедрения зависимостей и привязки данных, чтобы избавиться от большей части кода, который должен быть написан разработчиками. Все это происходит внутри браузера, что делает Angular JS фреймворком, который можно удобно использовать практически с любой серверной технологией.

Angular JS — это фреймворк с открытым исходным кодом, который имеет несколько общих черт с JavaScript. Он в основном используется разработчиками для разработки приложений, которым необходимо отображать весь их контент, текст и графику на одной странице. Однако это никоим образом не означает, что его нельзя использовать для создания многостраничных приложений.

В этом посте мы объясним, как нумерация страниц помогает разделить контент на несколько страниц, не влияя на поток и навигацию среди других факторов. Это такой популярный во всем мире фреймворк контроллера модели и представления по двум очень важным причинам: он основан на Google и всегда обновляется с учетом последних тенденций развития. Давайте теперь переключим наше внимание на разбиение на страницы.

Читайте: вопросы и ответы на собеседовании по AngularJS

Что такое пагинация?

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

Все веб-сайты, особенно веб-сайты электронной коммерции, такие как Flipkart, не могут перечислять все свои продукты и отображать всю необходимую информацию на одной странице. Здесь на помощь приходит пагинация. Он позволяет при необходимости разбивать контент в виде текста, изображений и т. д. на несколько страниц. Узнайте больше об использовании AngularJS для веб-разработки.

Есть несколько сценариев, в которых нумерация страниц очень удобна. Если на вашем веб-сайте размещены огромные объемы информации, включая блоги, графики или диаграммы, относящиеся к аналогичной категории или набору данных, вы можете разделить эту информацию с помощью разбиения на страницы и улучшить навигацию и удобочитаемость.

Пагинация в Angular JS

Существует несколько способов отображения данных на веб-сайте или в любом веб-приложении. Списки и таблицы являются наиболее распространенными элементами, которые большинство людей используют для отображения информации, которую легко читать и понимать. В приложениях Angular функция ng-repeat используется для отображения информации в списках или таблицах. Однако это работает только тогда, когда отображаемые данные не слишком велики. Для больших наборов данных такие функции, как сортировка, поиск и разбиение на страницы, делают таблицы и списки более управляемыми, а приложения — более удобными для пользователя.

Разбивка на страницы в Angular JS может показаться более сложной, чем разбивка на страницы в Laravel, Code PHP и других фреймворках для людей, которые не очень хорошо осведомлены о подходе к реализации, которому необходимо следовать. Вы можете использовать разбиение на страницы вместе с функциями поиска и сортировки для вывода списка записей в удобном для навигации и удобном для чтения формате.

Вы можете использовать сторонние библиотеки angular для преобразования простых списков в несколько страниц с функциями сортировки и поиска. Наиболее предпочтительной сторонней библиотекой для этой цели является dirPagination. Эта библиотека легкодоступна и очень проста в использовании. Его можно использовать для версий angular ниже angular 2. Если вы используете angular 2, вы разделите компоненты, доступные вам во внутренней библиотеке, чтобы добавить сортировку, поиск и разбиение на страницы.

Если вы хотите отобразить более 200 записей и используете, например, angular 1.4, вы обнаружите, что библиотека dirPagination работает быстрее других подобных библиотек и обладает высокой производительностью. Это библиотека plug-n-play, которой не нужен контроллер Angular JS для запуска какой-либо логики или команды настройки. Кроме того, он также хорошо работает с Bootstrap.

Разбиение на страницы в Angular JS с примером

Вот код для отображения разбивки на страницы в Angular JS.

Источник : ( https://gist.github.com/kmaida/06d01f6b878777e2ea34 )

<!DOCTYPE HTML>

<html lang="ru" ng-app="myApp">

<голова>

<метакодировка="utf-8">

<title>Динамическая нумерация страниц с фильтрацией</title>

<meta name=”viewport” content=”width=device-width, initial-scale=1.0″>

<мета-имя=”описание” содержание=””>

<meta name="автор" content="Ким Майда">

<!– JS-библиотеки –>

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.19/angular.min.js" type="text/javascript"></script>

<script src="http://angular-ui.github.io/bootstrap/ui-bootstrap-tpls-0.10.0.js" type="text/javascript"></script>

<!– Угловые скрипты –>

<script src="script.js" type="text/javascript"></script>

<!– Начальная загрузка –>

<link rel="stylesheet" type="text/css" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css" />

</голова>

<тело>

<div ng-controller="PageCtrl">

<div ng-controller="PageCtrl">

<label>Поиск:</label> <input type="text" ng-model="search.name" placeholder="Search" />

<br />

<label>Фильтровать по категории:</label>

<ул>

<li><a href="" ng-click="search.category='engineering'">Инженерия</a></li>

<li><a href="" ng-click="search.category='management'">Управление</a></li>

<li><a href="" ng-click="search.category='business'">Бизнес</a></li>

</ul>

<label>Фильтровать по ветке:</label>

<ул>

<li><a href="" ng-click="search.branch='West'">Запад</a></li>

<li><a href="" ng-click="search.branch='East'">Восток</a></li>

</ul>

<p><strong><a href="" ng-click="resetFilters()">Показать все</a></strong></p>

<h1>Предметы</h1>

<ул>

<li ng-repeat = ”элемент в отфильтрованном = элементы | фильтр:поиск | startFrom:(currentPage-1)*entryLimit | limitTo:entryLimit”>{{item.name}}</li>

</ul>

<pagination page="currentPage" max-size="noOfPages" total-items="totalItems" items-per-page="entryLimit"></pagination>

</div>

</тело>

</html>

app.js (Источник: https://gist.github.com/kmaida/06d01f6b878777e2ea34)

var app = angular.module('myApp', ['ui.bootstrap']);

app.filter('startFrom', функция () {

функция возврата (ввод, запуск) {

если (ввод) {

старт = +старт;

вернуть input.slice(начало);

}

вернуть [];

};

});

app.controller('PageCtrl', ['$scope', 'filterFilter', function ($scope, filterFilter) {

$scope.items = [{

«имя»: «имя 1»,

«категория»: [{

"управление категориями"

}, {

«категория»: «бизнес»

}],

«ветка»: «Запад»

}, {

«имя»: «имя 2»,

«категория»: [{

«категория»: «инженерия»

}],

«ветка»: «Запад»

}, {

«имя»: «имя 3»,

«категория»: [{

"управление категориями"

}, {

«категория»: «инженерия»

}],

«ветка»: «Запад»

}, {

«имя»: «имя 4»,

«категория»: [{

"управление категориями"

}, {

«категория»: «бизнес»

}],

«ветка»: «Запад»

}, {

«имя»: «имя 5»,

«категория»: [{

"управление категориями"

}, {

«категория»: «бизнес»

}],

«ветка»: «Восток»

}, {

«имя»: «имя 6»,

«категория»: [{

"управление категориями"

}, {

«категория»: «бизнес»

}],

«ветка»: «Восток»

}, {

«имя»: «имя 7»,

«категория»: [{

"управление категориями"

}, {

«категория»: «бизнес»

}],

«ветка»: «Восток»

}, {

«имя»: «имя 8»,

«категория»: [{

«категория»: «бизнес»

}],

«ветка»: «Запад»

}, {

«имя»: «имя 9»,

«категория»: [{

"управление категориями"

}, {

«категория»: «бизнес»

}],

«ветка»: «Восток»

}, {

«имя»: «имя 10»,

«категория»: [{

"управление категориями"

}],

«ветка»: «Восток»

}, {

«имя»: «имя 11»,

«категория»: [{

"управление категориями"

}, {

«категория»: «бизнес»

}],

«ветка»: «Восток»

}, {

«имя»: «имя 12»,

«категория»: [{

«категория»: «инженерия»

}],

«ветка»: «Запад»

}, {

«имя»: «имя 13»,

«категория»: [{

"управление категориями"

}, {

«категория»: «бизнес»

}],

«ветка»: «Запад»

}, {

«имя»: «имя 14»,

«категория»: [{

«категория»: «инженерия»

}],

«ветка»: «Восток»

}, {

«имя»: «имя 15»,

«категория»: [{

"управление категориями"

}, {

«категория»: «инженерия»

}],

«ветка»: «Восток»

}, {

«имя»: «имя 16»,

«категория»: [{

"управление категориями"

}],

«ветка»: «Запад»

}, {

«имя»: «имя 17»,

«категория»: [{

"управление категориями"

}],

«ветка»: «Восток»

}, {

«имя»: «имя 18»,

«категория»: [{

«категория»: «бизнес»

}],

«ветка»: «Запад»

}, {

«имя»: «имя 19»,

«категория»: [{

«категория»: «бизнес»

}],

«ветка»: «Запад»

}, {

«имя»: «имя 20»,

«категория»: [{

«категория»: «инженерия»

}],

«ветка»: «Восток»

}, {

«имя»: «Питер»,

«категория»: [{

«категория»: «бизнес»

}],

«ветка»: «Восток»

}, {

«имя»: «Фрэнк»,

«категория»: [{

"управление категориями"

}],

«ветка»: «Восток»

}, {

«имя»: «Джо»,

«категория»: [{

«категория»: «бизнес»

}],

«ветка»: «Восток»

}, {

«имя»: «Ральф»,

«категория»: [{

"управление категориями"

}, {

«категория»: «бизнес»

}],

«ветка»: «Восток»

}, {

«имя»: «Джина»,

«категория»: [{

«категория»: «бизнес»

}],

«ветка»: «Восток»

}, {

«имя»: «Сэм»,

«категория»: [{

"управление категориями"

}, {

«категория»: «инженерия»

}],

«ветка»: «Восток»

}, {

«имя»: «Бритни»,

«категория»: [{

«категория»: «бизнес»

}],

«ветка»: «Запад»

}];

Объяснение

Приведенный выше код будет отображать имена учащихся в соответствии с их категорией или предметом обучения, а также их географию. Функция разбиения на страницы Angular JS позволит упомянуть эти детали в табличном формате на нескольких страницах. Так вы сортируете информацию и делаете ее более презентабельной для пользователя. Возможно, это самый простой способ улучшить взаимодействие с пользователем для ваших веб-приложений.

Итак, если вы веб-разработчик, вам не следует откладывать изучение этого настолько эффективно, насколько это возможно. И с приведенными выше аргументами о том, почему AngularJS является идеальным инструментом в современном мире технологий, у вас есть все объяснения, чтобы двигаться вперед!

Если вам интересно узнать больше об AngularJS, разработке полного стека, ознакомьтесь с дипломом PG upGrad & IIIT-B по разработке программного обеспечения с полным стеком, который предназначен для работающих профессионалов и предлагает более 500 часов интенсивного обучения, более 9 проектов и задания, статус выпускника IIIT-B, практические практические проекты и помощь в трудоустройстве в ведущих фирмах.

Станьте разработчиком полного стека

ДИПЛОМ PG UPGRAD И IIIT-BANGALORE В РАЗРАБОТКЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
Зарегистрируйтесь сейчас