Мой рабочий стороне клиента рубить вокруг:
Я переопределять ajaxOptions на адаптере, чтобы сделать возможным прямой доступ к URL с store.find('model', { loadNext: '/loadMoarLink' })
:
ajaxOptions(url, type, options) {
if(options && options.data && options.data.loadNext) {
url = options.data.loadNext;
delete options.data.loadNext
}
return this._super(url, type, options);
}
Чтобы получить доступ к ссылкам я переопределять normalizeResponse на адаптер для записи ссылки на мета объекта:
normalizeResponse: function(store, primaryModelClass, payload, id, requestType) {
let links = payload.links;
let response = this._super(...arguments);
if(!get(response, 'meta')) {
set(response, 'meta', Ember.Object.create());
}
set(response, 'meta.links', links);
return response;
}
Тогда я могу получить доступ к метаданным из setupController
:
controller.set('meta', Ember.copy(this.store.metadataFor('model'), true));
И всегда запрашивать данные next
:
this.store.query('model', {
loadNext: this.get('controller.meta.links.next')
})
У вас есть репозиторий или JSBin для этого? Я хотел бы попробовать ваше решение, но у меня есть несколько проблем в ember-cli. Меня шокирует, как много работы требуется для доступа к информации, которая полностью входит в стандарт jsonapi. – allthesignals
Это именно то, что нам нужно сделать ... пока мы не получим «сахар» Ember Data для доступа к ссылкам. Если это немного помогает, вот руководство, которое я написал для Ember 2.3, включая бэкэнд Rails 5 с Kaminari: http://emberigniter.com/pagination-in-ember-with-json-api-backend/ – emberigniter