Backbone.js Event Aggregator
COMMAND AND CONTROL (and conquer)
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore-min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/backbone.js/1.3.3/backbone-min.js"></script>
<div id="container"></div>
JavaScript
var vent = _.extend({}, Backbone.Events);
var ButtonView = Backbone.View.extend({
tagName: 'button',
events: {
'click': 'alertUser'
},
alertUser: function() {
alert('yeehaw, button click')
vent.trigger('createInput', 'bugDuta');
},
initialize: function(options) {
this.render()
},
render: function() {
this.$el.text('BUTTON')
$('#container').append(this.el)
return this;
}
});
var InputView = Backbone.View.extend({
el: 'input',
initialize: function() {
this.render();
},
render: function() {
$('#container').append(this.el)
}
});
var btn = new ButtonView();
vent.on('createInput', function(data) {
console.log('triggered', data)
var input = new InputView();
});