2011-10-23 24 views
5

He estado probando backbone JS con rieles y realmente me gusta la forma en que organiza el frontend. He implementado una solución de paginación similar a la de aquí https://gist.github.com/705733Backbone JS Pagination

Me pregunto cuál es el rol de una colección y cómo debería funcionar con los resultados paginados. Actualmente, parece que cuando obtengo nuevos objetos de la base de datos anulan lo que está en la colección actual. Sin embargo, podría usar {add: true} para agregar a la colección actual. Esto haría la paginación más difícil. ¿Y qué hay sobre el almacenamiento en caché del resultado? ¿Debo crear una nueva colección para cada página?

Si alguien ha hecho esto o sabe cómo hacerlo, sería de gran ayuda.

Respuesta

11

Si su objetivo es consultar & elementos de la pantalla cuando se solicita una página, usted podría hacer algo como (pseudocódigo):

pages = {} 


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

por lo que mantener una colección para cada página.

Si también necesita una colección de todos los artículos que se han buscado hasta el momento, simplemente conserve uno y agregue los elementos que obtenga cada vez que los obtenga del servidor.

+4

Hola gracias, terminé agregándolos a una sola colección y usé Underscore para obtener los últimos (n) elementos basados ​​en por página. Funciona un placer! – seogrady

+0

seogrady - Sé que esto es una noticia antigua, pero ¿puedes publicar el código del año? – starsinmypockets