Comment puis-je détruire cette Backbone.js instance de Vue?
var CheckboxView = Backbone.View.extend({
tagName:'div',
template: _.template(item_temp,{}),
events:{
'click .checkoff_friend':'toggleCheckFriend',
},
initialize: function(){
},
render:function(){
},
toggleCheckFriend:function(){
//destroy this View instance.
}
});
var cv = new CheckboxView();
Comment puis-je détruire l'instance? Quand est activé, je veux l'instance de ce point de vue pour disparaître à jamais.
OriginalL'auteur TIMEX | 2011-12-04
Vous devez vous connecter pour publier un commentaire.
Ma réponse pour une question similaire a été bien reçu, et qui a bien fonctionné pour moi. Voici un coup d'oeil à mon destroy_view fonction
(orig. question https://stackoverflow.com/a/11534056/986832)
Réponse:
Je devais être absolument sûr que la vue n'a pas été retiré de DOM, mais aussi complètement indépendant des événements.
Semblait exagéré pour moi, mais d'autres approches n'ont pas complètement faire l'affaire.
OriginalL'auteur sdailey
Ne pas affecter l'instance d'une variable (je ne vois pas la nécessité pour depuis des Vues de la colonne vertébrale sont déterminées par des événements), et dans votre
toggleCheckFriend
méthode de supprimer toutes les données et les événements, ce qui rend l'instance disponibles pour la collecte des ordures.OriginalL'auteur Esailija
N'est que le point de Vue d'un modèle de derrière?
Si vous voulez le modèle supprimé (à partir de la db), vous pouvez utiliser:
this.model.destroy()
Après cela, vous pouvez supprimer l'Affichage lui-même à partir du DOM en appelant
this.remove()
. La Documentation mentionne que c'est l'équivalent de$(this.el).remove()
.Noter que le " il " ci-dessus se réfère à la Vue elle-même, de sorte que vous auriez à
_.bindAll(this, 'toggleCheckFriend')
J'surtout qu'il y à de la tuyauterie de commandes. Juste au cas où il y a des éléments qui peuvent déclencher en outre l'utilisateur directement à son déclenchement. (la page a un CheckAllCheckBox)
OriginalL'auteur rkw