sto usando Firebase per salvare i messaggi che hanno i seguenti dati:Come rendere ngInfiniteScroll recuperare i dati da createdAt Discendente
createdAt: "Sun Apr 03 2016 18:32:46 GMT-0300 (BRT)"
Quello che sto cercando di realizzare è quello di ottenere i post più recenti e poi carica quelli più vecchi mentre l'utente scorre verso il basso.
Con i post recuperati utilizzando ngInfiniteScroll, sono in grado di ordinare la descrizione utilizzando <div ng-repeat="post in posts | orderBy:'-createdAt'">
ma ngInfiniteScroll continua a restituire prima i vecchi post. Sto ordinando ma sto ordinando i più grandi.
Ho già provato a utilizzare la stessa logica ("-createdAt"
) in ngInfiniteScroll ma non è stato efficace.
miei js è più o meno questo:
var baseRef = new Firebase(FBURL).child("posts");
var scrollRef = new Firebase.util.Scroll(baseRef, "createdAt");
$scope.posts = $firebaseArray(scrollRef);
$scope.posts.scroll = scrollRef.scroll;
Sicurezza e regole:
"posts": {
".read": true,
".indexOn": "createdAt",
"$post": {
".read": true,
".write": true,
"$other": {
".validate": true
}
}
}
Penso che il tuo problema sia che stai ordinando per data come stringa e non come oggetto Date. Guarda questa risposta: http://stackoverflow.com/a/25306447/752142. – illagrenan
@illagrenan Il mio orderBy sta funzionando bene ... O stai dicendo che cambiandolo con Date the ngInfiniteScroll riconoscerà il '" -createdAt "'? – adolfosrs
Quindi i tuoi articoli sono ordinati correttamente se li stampi senza ngInfiniteScroll utilizzando il semplice ngRepeat? E se usi gli oggetti 'infinite-scroll = 'someService.nextPage()'' non sono ordinati? Ho ragione? La soluzione semplice potrebbe essere: recuperare gli elementi dall'API, ordinarli nel servizio/controller e quindi restituire i dati ordinati da 'infinite-scroll = 'myMethod()''. – illagrenan