La función View.remove() en la red troncal js elimina el elemento del contenedor de la vista del DOM impidiendo la recreación de las vistas que se han eliminado. Cualquier idea de cómo se maneja este escenarioRecreación de una vista eliminada en la red troncal js
Aquí está mi código,
var AttributeView = Backbone.View.extend({
el: $("#attrs"),
template:_.template($('#attrs-template').html()),
initialize:function() {
},
render:function (eventName) {
$(this.el).html(this.template(this.model.toJSON()));
return this;
},
dispose:function(eventName){
this.unbind();
this.remove();
},
});
var attrView = new AttributeView();
....
attrView.dispose();
//Later on some event I do the below
attrView = new AttributeView()
attrView.render();
Las dos últimas líneas anteriores no recrean la vista como la div con id = "attrs" no está ya allí.
Gracias por su respuesta. Pero por alguna razón, un código similar a tu ejemplo no funciona. Creé el http://jsfiddle.net/EnVmN/7/ para ilustrar el problema que tengo. Alguna idea de lo que estoy haciendo mal. Estoy reutilizando su AttributeView, pero agregué ItemView e intento mostrar y eliminar la vista de atributo al hacer clic en editar y eliminar iconos respectivamente. – mzafer
@mzafer: los eventos de una vista solo funcionan en 'el' de la vista y sus elementos secundarios, su ItemView se procesaba en' # elementos' pero eso no era 'el' de ItemView, por lo que los eventos de clic en sus iconos no se enviaban a el ItemView: http://jsfiddle.net/ambiguous/KjC6x/ –
Muchas gracias, funciona ahora :) Pasé casi dos días en esto. – mzafer