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();
});