Я на самом деле использую простую разбивку страниц.
Это работает с простой логикой:
Пустая болячка
-Выбор данных в соответствии с фактической страницей
Дело в том, что переход совсем не гладкий, убедитесь сами:
https://streamable.com/sg6sg
Есть ли способ это исправить? Мой разум сказал мне, что было бы решением сначала получить данные, очистить сортировку, а затем отправить данные обратно в хранилище.
import Component from '@ember/component';
import { computed } from '@ember/object';
import { sort } from '@ember/object/computed';
import { inject as service } from '@ember/service';
export default Component.extend({
store: service(),
posts: computed(function() {
return this.get('store').peekAll('post');
}),
pageSize: 20,
pageNumber: null,
recordCount: null,
sortProps: ['createdAt:desc'],
sortedPosts: sort('posts', 'sortProps'),
loadPosts(getPageNumber) {
const pageSize = this.get('pageSize');
this.get('store').unloadAll('post');
this.get('store').
query('post', {page: {number: getPageNumber, size: pageSize}}).
then((result) => {
this.setProperties({
'recordCount': result.get('meta.record-count'),
'pageNumber': getPageNumber
});
};
},
init() {
this._super(...arguments);
this.loadPosts(1);
},
actions: {
getPage(getPageNumber) {
this.loadPosts(getPageNumber);
}
}
});