javascript - ¿Cómo eliminar un modelo de red troncal del lado del cliente?
backbone.js (1)
¿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.
¡¡Gracias!!
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 cualquier colección (documentos principales):
Destruye model.destroy ([opciones])
... Desencadena un evento de "destrucción" en el modelo, que se disparará a través de cualquier colección que lo contenga ...
Lo que quizás quieras hacer es asignar un nuevo método de destrucción que incluye el desencadenamiento del evento y las cosas que deseas 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 que también deba tener en cuenta algunos patrones para generar menos basura de los Modelos:
- No coloque su modelo inicializado en una variable (guárdelo en la colección);
- Asegúrese de escribir su código de manera que no haya ningún evento enlazado desde el Modelo (use vistas / colecciones para eso);
- Mantenga su código de modelo simple, ya que los modelos en su aplicación estarán más numerados.
Creo que al seguir esas reglas no tendrás que preocuparte tanto por la basura de tus Modelos.