Marionette.js. Events. Attaching Functions

The `childViewEvents` attribute can also attach functions directly to be event handlers

by marionettejs

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.2/jquery.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/backbone.js/1.3.3/backbone-min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/backbone.radio/2.0.0/backbone.radio.min.js"></script>
<script src="https://rawgit.com/marionettejs/backbone.marionette/next/lib/backbone.marionette.js"></script>
<div id="container">
  <div class="foo-hook"></div>
</div>

JavaScript

const { View } = Marionette; // import { View } from 'backbone.marionette';

const MyView = View.extend({
	template: _.template('MyView template. Click on me'),
  triggers: {
    click: 'view:clicked'
  }
});

const ParentView = View.extend({
	el: '#container',
  regions: {
    foo: '.foo-hook'
  },
  childViewEvents: {
    'view:clicked'(childView) {
      console.log('Function called for ' + childView);
    }
  },

  initialize() {
    this.showChildView('foo', new MyView());
  }
});

const parentView = new ParentView();