2013-02-02 4 views
1

Je montre des lignes de ma collection dans une datatable. J'ai une vue dans laquelle je détruis un modèle et une fois cela fait, j'ai besoin de retirer la ligne correspondante dans datatable. Je suis capable de détruire le modèle mais je ne sais pas comment supprimer cette ligne spécifique. La vue qui gère les lignes est comme ceci:Supprimer une ligne de datatable après que le modèle a été détruit dans backbonejs

var rowRow = Backbone.View.extend({ 
    tagName: "tr", 
    events: { 
    'click .edit':'editrow', 
    'click .delete':'deleterow' 
    }, 

    render: function() { 
    data = this.model.toJSON(); 

    this.$el.html('<td>'+data.name+'</td><td>'+data.email+'</td><td>'+data.contact_number+'</td><td><span id="delete'+data.id+'" class="delete">Delete</span> | <span class="edit">Edit</span></td>'); 
    return this; 
    }, 

    editrow: function(){ 
    alert("edit"); 
    }, 

    deleterow: function() { 
    var data = this.model.toJSON(); 

    this.model.destroy({ wait: true, success: function(){ }}); 
    } 
}) 

Juste après la destruction du modèle, comment puis-je supprimer cette ligne spécifique dans datatable?

Répondre

1

Je suppose que $ el.remove() devrait supprimer la ligne entière du DOM.

Un message sur Stack mis ce code aussi: (https://stackoverflow.com/a/11534056/968988)

destroy_view: function() { 

    //COMPLETELY UNBIND THE VIEW 
    this.undelegateEvents(); 

    this.$el.removeData().unbind(); 

    //Remove view from DOM 
    this.remove(); 
    Backbone.View.prototype.remove.call(this); 
} 

Je pense que la prochaine version de Backbone aura une aide pour cela.

+0

J'utilise actuellement des datatables. donc il y a une fonction comme fnDeleteRow mais je ne sais pas comment l'appeler ici car il sera lié dans la table elle-même et comment serai-je en mesure de me référer. – beNerd

+0

datatables est une (excellente) bibliothèque orientée DOM où Backbone est une bibliothèque "mémoire". Vous devez d'abord utiliser datatable.fnDeleteRow() puis supprimer les objets backbone (this.model.destroy(), this.view.destroy_view) –

Questions connexes