È possibile utilizzare la definizione Backbone.View.events
per l'ascolto di eventi di visualizzazione secondaria personalizzati?Come utilizzare la definizione `Backbone.View.events` per ascoltare gli eventi di sottoview personalizzati?
definizione Bambino
Tutti click
eventi vengono memorizzati nella cache e attivano la mia clicked
funzione:
var Child = Backbone.View.extend({
events : {
'click' : 'clicked'
},
clicked: function() {
alert('View was clicked');
this.trigger("customEvent");
},
render: function() {
this.$el.html("<span>Click me</span>");
}
});
definizione Parent
Perché customEvent
eventi non chiamano la mia funzione action
?
var Parent = Backbone.View.extend({
events : {
'customEvent' : 'action'
},
action : function() {
alert('My sub view triggered a custom event');
},
render : function() {
var child = new Child();
this.$el.append(child.el);
child.render();
}
});
creazione e il rendering genitore
var parent = new Parent();
parent.$el.appendTo(document.body);
parent.render();
So che potrebbe usare listenTo
invece, ma usando la definizione di eventi sembra essere più pulita.
La mia intenzione è quella di creare una vista secondaria (ad esempio un selettore di colori) che attiva un evento dopo che è stato eseguito.
Cosa ne pensate di questo '$ el.trigger ("customEvent".) '? – jantimon
Ancora una volta, il tuo elemento el non sta ascoltando "customEvent", quindi anche questo non funzionerà. Destra ? Si prega di dare un'occhiata al codice JSbin. – sachinjain024
Funziona: http://jsfiddle.net/YLzUJ/2/ – jantimon