Kann die Definition Backbone.View.events
verwendet werden, um nach benutzerdefinierten Subview-Ereignissen zu suchen?Wie kann die `Backbone.View.events` -Definition verwendet werden, um nach benutzerdefinierten Subview-Ereignissen zu suchen?
Child Definition
Alle click
Ereignisse zwischengespeichert werden und lösen meine clicked
Funktion:
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>");
}
});
Eltern Definition
Warum nicht customEvent
Ereignisse rufen meine action
Funktion?
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();
}
});
Eltern Erstellen und machen
var parent = new Parent();
parent.$el.appendTo(document.body);
parent.render();
Ich weiß, dass listenTo
stattdessen verwenden könnte, aber die Ereignisse nach Definition scheint sauberer zu sein.
Meine Absicht ist es, eine Unteransicht (z. B. eine Farbauswahl) zu erstellen, die ein Ereignis auslöst, nachdem es fertig ist.
Was denken Sie über '$ this el.trigger ("customEvent".) '? – jantimon
Noch einmal, Ihr el Element hört nicht auf "customEvent", also wird dies nicht funktionieren. Recht ? Bitte sehen Sie sich den JSbin-Code an. – sachinjain024
Es funktioniert: http://jsfiddle.net/YLzUJ/2/ – jantimon