2013-03-02 37 views
6

Al momento io sono inutile come si fa a raggiungere la paginazione con braci-dati. Ho scoperto che posso restituire la proprietà 'meta' in risposta e i dati ember non generano un errore. Ma non so come accedervi, né quale sia lo scopo di questa proprietà.ember.js API REST con impaginazione

I pochi esempi su Internet presuppongono di avere tutta la raccolta già caricata su ember, o fanno poco trucco e fanno scroll infinito, che non richiede informazioni sul conteggio delle pagine.

Penso che il caricamento di tutti i record sia ok se avessi < 1k di essi, ma a volte avrò a che fare con enormi quantità di dati (diciamo i log di apache). Cosa poi?

Quindi in pratica sono al punto in cui vorrei utilizzare ember e ember-data per creare la mia prima applicazione reale, ma penso che non sia una buona idea.

Ok, quindi nessuno ha idea di come risolvere questo semplice ma complicato, problema? :)

+0

Stai usando RC1 e brace-dati rev 11? Anche quale adattatore stai usando con esso? Quale back-end del server hai? Hai bisogno di ogni pagina per rispettare la cronologia e il pulsante Indietro? –

+0

Date un'occhiata a [questa domanda] (http://stackoverflow.com/questions/13699796/ember-data-loading-hasmany-association-on-demand/14532845#14532845). C'è anche qualche [discussione in corso] (https://github.com/emberjs/data/issues/666) sul tracker di github. – ahmacleod

+0

@Toran Billups: tutti gli ultimi estratti dai repository di github. –

risposta

1

Ok, ecco alcune idee per iniziare.

In primo luogo, è necessario iniziare con un percorso e prendere un numero di pagina come parametro dinamico.

this.resource('posts', { path: '/posts/:page' }; 

Poi, come non ho esperienza con Silex, è necessario sostenere un qualche tipo di parametri lato server che potrebbero essere utilizzati per l'impaginazione. Per esempio offset e limit cui primo mezzo il numero di record che si desidera saltare e la seconda il numero di record che si desidera nel selezionare da lì. Idealmente dovresti implementarli come parametri di query come ?offset=0&limit=10.

Poi basta implementare il percorso tabella come segue:

App.TableRoute = Ember.Route.extend({ 
    model: function (params) { 
     return App.Post.find({ offset: (params.page - 1) * 10, limit: 10 }); 
    } 
}); 

È quindi possibile iniziare a fare un po 'di magia e creare i tuoi articoli per parametro della pagina o convalidare il numero di pagina per andare a prendere il numero di tutti i record in anticipo.

+0

grazie per la risposta, ma sono passato a angular.js. Secondo me è molto meglio di Ember.js - tutto è ben testabile con il karma runner e il gelsomino. –