A melhor maneira de classificar uma coleção em um CompositeView
Eu estou tentando classificar uma coleção em umMarionette.CompositeView
.
Eu tenho uma coleção que se parece com isso:
[
{id: 1, name: 'bar'},
{id: 2, name: 'boo' },
{id: 3, name: 'foo' }
]
Eu preciso classificar a coleção por id na ordem inversa.
Na verdade, só funciona quando eu recarregar a página.
Quando eu adiciono um novo modelo, o novo item é adicionado aparentemente aleatório à lista.
Se eu atualizar a página, eles serão bem classificados.
Minhas perguntas são:
1) como corrigir o problema quando eu adiciono um novo modelo?
2) será possível melhorar o código?
Aqui está o meu código:
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
}
})