Мой рабочий взлом на стороне клиента:
Я переопределяю 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')
})
person
Lux
schedule
08.09.2015