Разбивка на страницы Backbone JS

#backbone.js

#backbone.js

Вопрос:

Я пробовал backbone JS с rails, и мне очень нравится, как он организует интерфейс. Я реализовал решение для разбивки на страницы, аналогичное приведенному здесь https://gist.github.com/705733

Мне просто интересно, какова роль коллекции и как она должна работать с разбитыми на страницы результатами. В настоящее время кажется, что когда я извлекаю новые объекты из базы данных, они переопределяют то, что находится в текущей коллекции. Однако я мог бы использовать {add: true} для добавления в текущую коллекцию. Это усложнило бы разбивку на страницы. А как насчет кэширования результата? Должен ли я создавать новую коллекцию для каждой страницы?

Если кто-нибудь сделал это или знает, как это сделать, это было бы очень полезно.

Ответ №1:

Если ваша цель состоит в том, чтобы запрашивать и отображать элементы при запросе страницы, вы могли бы сделать что-то вроде (псевдокод):

 pages = {}


// when page N is needed
function fetch_page(n) {
 if (!pages[n]) {
    pages[n] = new ItemsCollection({page: n})
    pages[n].fetch();
 }     
}
  

Таким образом, вы сохраняете коллекцию для каждой страницы.

Если вам также нужна коллекция всех элементов, извлеченных до сих пор, просто сохраните один — и добавляйте в него выбранные элементы каждый раз, когда вы получаете их с сервера.

Комментарии:

1. Привет, спасибо, дира, в итоге я добавил их в одну коллекцию и использовал подчеркивание, чтобы получить последние (n) элементы на основе каждой страницы. Работает великолепно!

2. сегреди — я знаю, что это старые новости, но не могли бы вы опубликовать годовой код?