Excluindo um modelo de backbone sem enviar uma solicitação DELETE

Tenho usado o Backbone.js para mais do que apenas aplicativos cliente-servidor. Eu me pego usando visualizações, modelos e coleções do Backbone para nada além de elementos de front-end que absolutamente não precisam interferir no back-end.

O backbone Model, no entanto, não suporta a autodestruição, sem enviar uma DELETEsolicitação ao servidor.

No entanto, o Backbone Collectionescuta um destroyevento a ser disparado por um modelo. Portanto, você pode acioná-lo manualmente em seu modelo e sua coleção o excluirá com prazer.

Vamos inicializar uma nova instância do padrão do Backbone Collection.

var myCollection = new Backbone.Collection();

E então, digamos, você adiciona três registros à coleção.

myCollection.add([
{ name: "Mike"},
{ name: "John" },
{ name: "Alex" }
]);

De alguma forma, você conseguiu obter a referência ao modelo que tem seu nameatributo definido como "John".

var john = myCollection.at(1);

Agora, você deseja excluí-lo, mas parece não ter uma referência a myCollection.

Bem, você apenas acionará seu destroyevento, passando o modelo como parâmetro.

john.trigger('destroy', john);

Aí está. Excluindo modelos, sem fazer uma DELETEsolicitação ao servidor.

[EDITAR]

Assim como @nono disse no comentário abaixo, você também pode chamar removea propriedade de coleção de um modelo – que passou a ser uma referência à coleção da qual o modelo é membro. A chamada removenão fará uma solicitação AJAX ao servidor.