Próbuję posortować kolekcję w Marionette.CompositeView
.
Mam kolekcję, która wygląda tak:Najlepszy sposób sortowania kolekcji w CompositeView
[
{id: 1, name: 'bar'},
{id: 2, name: 'boo' },
{id: 3, name: 'foo' }
]
muszę uporządkować kolekcję przez ID w odwrotnej kolejności.
W rzeczywistości działa tylko po ponownym załadowaniu strony.
Po dodaniu nowego modelu nowy element jest dodawany losowo do listy.
Jeśli odświeżę stronę, zostaną one dobrze posortowane.
Moje pytania są następujące:
1) w jaki sposób rozwiązać problem podczas dodawania nowego modelu?
2) czy uda się poprawić kod?
Oto mój kod:
return Marionette.CompositeView.extend({
initialize: function() {
this.collection.fetch();
},
onRender: function() {
var collection = this.collection;
collection.comparator = function (collection) {
return - collection.get('id');
}
},
onSuccess: function() {
this.collection.add(this.messageModel);
this.collection.sort(); // the messageModel seems to be added
// apparently randomly to the list.
// only if I refresh the page it will be ok
}
})
link github jest martwy :-( – ErichBSchulz
link github nie jest martwy już :-) – Ziggy
Github link jest ponownie nie żyje. – abhaga