Comment déclencher / lier des événements personnalisés dans Backbone.js point de vue?
J'ai une épine Dorsale Vue qui utilise iScroll à mettre en œuvre un diaporama.
iScroll publie un onScrollEnd
événement, mais je n'arrive pas à lier/abonnez-vous à l'intérieur de la Vue:
App.Views.Scroller = Backbone.View.extend({
events: {
'onScrollEnd' : 'scrollEnd'
},
initialize: function(){
var self = this;
this.scroller = new iScroll('content-scroller', {
onScrollEnd: function() {
self.trigger('onScrollEnd');
}
});
},
scrollEnd: function(e){
//never called :(
console.log(e);
}
});
- J'ai aussi essayé l'extension de la barre de défilement de l'objet avec la colonne vertébrale.Les événements
Vous devez vous connecter pour publier un commentaire.
Votre onScrollEnd événement est lié à la vue de l'élément supérieur; scrollEnd sera appelé lors de l'affichage de l'élément HTML a reçu une onScrollEnd événement.
Mais vous êtes le déclenchement d'une onScrollend événement sur votre point de Vue de l'objet, pas l'élément.
Donc, vous voulez probablement dire
$(self.el).trigger('onScrollEnd');
au lieu de cela, ou peut-être appeler la fonction directement:self.scrollEnd()
.self.$el.trigger('onScrollEnd');
.Il pourrait ne pas être évident, mais
event
propriété dans backbone.js vues est utilisé uniquement pour les événements DOM. Les événements personnalisés devraient être tenus comme James Brown mentionné ci-dessus.Vous devez appeler la fonction directement ou dans votre init, ajouter ceci: