posso fare con successo questo:modo corretto di ordinare una collezione backbone.js al volo
App.SomeCollection = Backbone.Collection.extend({
comparator: function(collection){
return(collection.get('lastName'));
}
});
che è bello se voglio avere una collezione che viene organizzato solo per 'lastName'. Ma ho bisogno di fare questo ordinamento fatto dinamicamente. A volte, ho bisogno di ordinare, per esempio, 'firstName' invece.
miei fallimenti pronunciano includono:
ho provato passando una variabile in più specificando la variabile a sort()
su. Non ha funzionato. Ho anche provato sortBy()
, che non ha funzionato neanche. Ho provato a passare la mia funzione per ordinare(), ma questo non ha funzionato neanche. Passando una funzione definita dall'utente a sortBy()
solo per ottenere che il risultato non disponga di un metodo each
, annullando il punto di avere una raccolta backbone appena ordinata.
Qualcuno può fornire un esempio pratico di ordinamento mediante una variabile che non è codificata in modo fisso nella funzione di confronto? O qualsiasi hack che hai funziona? In caso contrario, una chiamata sortBy()
funzionante?
Grazie. Implementazione e varianti suggerite non hanno avuto successo, ma sono grato per la risposta :). Penso che mi manchi qualcosa di veramente piccolo qui. Abbastanza frustrante. Mi sto appoggiando ad un altro framework per il mio lavoro javascript considerando quante difficoltà sto avendo con una semplice variante di ordinamento>. < – kikuchiyo
Sto per provare a risolvere questo problema da solo. La mia app mostra una tabella. L'utente ordina i contenuti della tabella facendo clic sui nomi delle colonne nella testa della tabella. Sto considerando di rendere la testa di una regione con il proprio modello di "ordinamento". Il modello seguirà l'attuale "sortCriteria". Facendo clic sul nome di una colonna si aggiornerà sortCriteria. Avrò una funzione di confronto nella collezione. Otterrà semplicemente sortCriteria dal modello di ordinamento. –
I JSFiddles devono essere aggiornati per utilizzare un Underscore e Backbone presenti sul server. Quelli su cdnjs.com sono buoni. JSFiddle usa per fornire il proprio, ma non credo più. La mia valutazione iniziale è stata un po 'dura, ma penso che 'myModel' debba essere sostituito con il parametro passato al comparatore, che dovrebbe essere ogni modello nella collezione. –