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 DELETE
solicitação ao servidor.
No entanto, o Backbone Collection
escuta um destroy
evento 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 name
atributo 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 destroy
evento, passando o modelo como parâmetro.
john.trigger('destroy', john);
Aí está. Excluindo modelos, sem fazer uma DELETE
solicitação ao servidor.
[EDITAR]
Assim como @nono disse no comentário abaixo, você também pode chamar remove
a propriedade de coleção de um modelo – que passou a ser uma referência à coleção da qual o modelo é membro. A chamada remove
não fará uma solicitação AJAX ao servidor.