Skip to content

Instantly share code, notes, and snippets.

@fsmanuel
Last active November 3, 2016 19:57
Show Gist options
  • Save fsmanuel/49aa83adb3fcbe765dcf0f9f3ec68f4a to your computer and use it in GitHub Desktop.
Save fsmanuel/49aa83adb3fcbe765dcf0f9f3ec68f4a to your computer and use it in GitHub Desktop.
Ember JSONAPI pagination
{{paginate-collection model page}}
{{! your list}}
{{paginate-collection model page}}
import Ember from 'ember';
const {
Component,
get,
computed,
computed: {
reads
}
} = Ember;
const PageNumbers = Component.extend({
pageCount: reads('collection.meta.page-count'),
pages: computed('collection', 'page', function() {
return Array.from(new Array(get(this, 'pageCount')), (_,i) => i + 1);
})
});
PageNumbers.reopenClass({
positionalParams: ['collection', 'page']
});
export default PageNumbers;
{{#each pages as |number|}}
{{#if (eq number page) }}
{{ number }}
{{else}}
{{link-to number (query-params page=number)}}
{{/if}}
{{/each}}
import Ember from 'ember';
const {
Mixin
} = Ember;
export default Mixin.create({
queryParams: ['page', 'size'],
page: 1,
size: 25
});
import Ember from 'ember';
const {
Mixin
} = Ember;
export default Mixin.create({
queryParams: {
page: { refreshModel: true },
size: { refreshModel: true }
}
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment