Пагинация в Ember с помощью ember-cli-pagination

Я пытаюсь реализовать разбиение на страницы в своем проекте, используя ember-cli-pagination, но это не работает. У меня есть что-то вроде этого в контроллере:

import Ember from 'ember';
import pagedArray from 'ember-cli-pagination/computed/paged-array';

export default Ember.Controller.extend({
  // setup our query params 
  queryParams: ["page", "perPage"],

  // set default values, can cause problems if left out 
  // if value matches default, it won't display in the URL 
  page: 1,
  perPage: 10,

  // can be called anything, I've called it pagedContent 
  // remember to iterate over pagedContent in your template 
  pagedContent: pagedArray('car', {pageBinding: "page", perPageBinding: "perPage"}),

  // binding the property on the paged array 
  // to a property on the controller 
  totalPagesBinding: "pagedContent.totalPages"
});

В документации, где я разместил автомобиль, он называется content. Я предполагаю, что это массив объектов, которые я хочу разбить на страницы.

Проект находится здесь https://github.com/mcand/contazul-frontend-test/tree/emberdata в ветке emberdata.

Я был бы признателен, если бы кто-нибудь мог мне помочь.


person andrefurquin    schedule 30.01.2017    source источник


Ответы (1)


У меня нет большого опыта работы с этим дополнением, и я не изучал ваш код.

Я думаю, ваша проблема заключается в том, что вы привязываете pagedArray к «автомобилю» вместо «модели» или «контента», потому что я не вижу, где вы определили вычисляемое свойство «автомобиль» на этом контроллере.

Итак, вы хотели бы:

pagedArray('content', {pageBinding: "page", perPageBinding: "perPage"})

Кроме того, вы можете захотеть, чтобы CarsController расширял ArrayController вместо Controller.

person GManProgram    schedule 30.01.2017
comment
У меня возникает эта ошибка: ember.debug.js: 3894 Uncaught TypeError: Не удается прочитать свойство «расширить» неопределенного, когда я расширяю ArrayController. Я не нашел никакой информации об ArrayController в Ember 2, только в предыдущей версии. - person andrefurquin; 31.01.2017
comment
Кажется, ArrayController устарел, по словам создателя аддона. Вместо этого вы должны использовать контроллер. Все равно не работает, попробую разобраться почему. - person andrefurquin; 31.01.2017
comment
Даже с изменением pagedArray('car'..., ) на pagedArray('content', ..)? Вы также можете попробовать pagedArray('model', ...) хотя я не думаю, что если бы контент работал, изменение его на модель будет работать - person GManProgram; 31.01.2017