2011-10-23 15 views
5

Ho provato il backbone JS con le guide e mi piace molto il modo in cui organizza il frontend. Ho implementato una soluzione di impaginazione simile a quella qui https://gist.github.com/705733Backbone JS Paginazione

Mi chiedo quale sia il ruolo di una raccolta e come dovrebbe funzionare con i risultati impaginati. Attualmente, sembra che quando prelevo nuovi oggetti dal database, sovrascrivono ciò che è nella collezione corrente. Tuttavia, potrei usare {add: true} per aggiungere alla raccolta corrente. Ciò renderebbe quindi l'impaginazione più difficile. E che ne dici di mettere in cache il risultato? Dovrei creare una nuova collezione per ogni pagina?

Se qualcuno ha fatto questo o sa come procedere sarebbe di grande aiuto.

risposta

11

Se il vostro obiettivo è quello di interrogare & voci del display quando viene richiesta una pagina, si potrebbe fare qualcosa di simile (pseudocodice):

pages = {} 


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

in modo da mantenere una collezione per ogni pagina.

Se è necessaria anche una raccolta di tutti gli elementi recuperati fino a quel momento, è sufficiente conservarne uno e aggiungere elementi recuperati ad esso ogni volta che si ottengono dal server.

+4

Ehi, grazie dira, ho finito per aggiungerli a una singola raccolta e ho usato Underscore per ottenere gli ultimi (n) elementi basati su per pagina. Funziona a meraviglia! – seogrady

+0

seografo - So che questa è una notizia vecchia, ma puoi pubblicare il tuo codice? – starsinmypockets