Marionette.js. View. Accessing a child view

To access the child view of a View - use the getChildView(region) method. This will return the view instance that is current being displayed at that region, or null

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>

JavaScript

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

const MySubView = View.extend({
	template: _.template('<h1>Marionette says hi!</h1>'),

	regions: {
		firstRegion: '#first-region'
	},
  
  doSomething() {
  	console.log('Hi, from MySubView');
  }
});

const MyView = View.extend({
	template: _.template('<div id="first-region">First region</div>'),

	regions: {
		firstRegion: '#first-region'
	},
  
  onRender() {
    this.showChildView('firstRegion', new MySubView());
  },
  
  onSomeEvent() {
    const first = this.getChildView('firstRegion');
    first.doSomething();
  }
});

const myView = new MyView();
myView.render();
myView.triggerMethod('some:event');