#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. сегреди — я знаю, что это старые новости, но не могли бы вы опубликовать годовой код?