The Protevus Platform: Unified Full-Stack Development
https://protevus.com
.idea | ||
example | ||
lib | ||
test | ||
.analysis-options | ||
.gitignore | ||
.travis.yml | ||
CHANGELOG.md | ||
LICENSE | ||
pubspec.yaml | ||
README.md |
paginate
Platform-agnostic pagination library, with custom support for the Angel framework.
Installation
In your pubspec.yaml
file:
dependencies:
angel_paginate: ^2.0.0
Usage
This library exports a Paginator<T>
, which can be used to efficiently produce
instances of PaginationResult<T>
. Pagination results, when serialized to JSON, look like
this:
{
"total" : 75,
"items_per_page" : 10,
"previous_page" : 3,
"current_page" : 4,
"next_page" : 5,
"start_index" : 30,
"end_index" : 39,
"data" : ["<items...>"]
}
Results can be parsed from Maps using the PaginationResult<T>.fromMap
constructor, and
serialized via their toJson()
method.
To create a paginator:
import 'package:angel_paginate/angel_paginate.dart';
main() {
var p = new Paginator(iterable);
// Get the current page (default: page 1)
var page = p.current;
print(page.total);
print(page.startIndex);
print(page.data); // The actual items on this page.
p.next(); // Advance a page
p.back(); // Back one page
p.goToPage(10); // Go to page number (1-based, not a 0-based index)
}
The entire Paginator API is documented, so check out the DartDocs.
Paginators by default cache paginations, to improve performance as you shift through pages. This can be especially helpful in a client-side application where your UX involves a fast response time, i.e. a search page.