2012-05-07 7 views
13

¿Cuál es la mejor manera de eliminar un lado del cliente modelo? No necesito preocuparme por eliminarlo del lado del servidor. ¿Cómo me aseguro de que se elimine en todas partes, evitando cada gotcha, cada enlace zombie. Estoy buscando una guía para eliminar y destruir todo y asegurarme de que el modelo sea basura.¿Cómo eliminar un modelo de red troncal desde el lado del cliente?

Gracias!

+0

posible duplicar http://stackoverflow.com/questions/10400630/remove-a-backbone-model-by-id –

+0

¿De dónde salió? ¿Una colección? ¿El documento? La memoria del navegador? – JMM

+0

@JMM Sí, hemos ido de todas partes, evitando cada gotcha, cada zombie vinculante. Estoy buscando una guía completa para eliminar y destruir todo y garantizar que el modelo sea basura. – fancy

Respuesta

11

Realmente depende de lo que hay dentro de este modelo. Si está vinculado a eventos de otras instancias - Ver/Colección/Modelos, debe eliminar esos detectores de eventos de forma manual, ya que no hay forma de eliminarlos todos a la vez.

Además, Model.destroy() elimina el modelo de todas las colecciones de documentos (backbone):

Destruye model.destroy ([opciones])

... desencadena un evento "destroy" en el modelo, que surgirá a través de cualquier colección que lo contenga ...

Lo que quizás desee hacer es asignar un nuevo método de destrucción que incluya el desencadenador de eventos y lo que desea eliminar.

destroy: function(options) { 
    // Any events you wish to switch off (if you have any) 
    SomeCollection.off('change', this.changeFn); 

    Backbone.Model.prototype.destroy.apply(this, options);  
} 

puede ser también se debe tener en cuenta algunas pautas para hacer menos basura de modelos:

  1. No coloque su modelo inicializado en una variable (mantenerlo en la colección);
  2. Asegúrese de escribir su código de manera que no haya ningún evento enlazado desde el Modelo (use vistas/colecciones para eso);
  3. Mantenga su código de modelo simple, ya que los modelos en su aplicación estarán más numerados.

Creo que siguiendo estas reglas no tendrás que preocuparte tanto por la basura de tus Modelos.

Cuestiones relacionadas