Marionette.js. Marionette functions. Marionette. mergeOptions

A handy function to pluck certain options and attach them directly to an instance. All Marionette Classes, such as the Views, come with this method.

by marionettejs

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/backbone.radio/2.0.0-pre.2/backbone.radio.js"></script>
<script src="https://rawgit.com/marionettejs/backbone.marionette/next/lib/backbone.marionette.js"></script>
<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://cdnjs.cloudflare.com/ajax/libs/backbone.marionette/3.0.0/backbone.marionette.js"></script>

CSS

.red {
  border: 1px solid red
}

.small {
  width: 100px;
  height: 100px;
}

JavaScript

const MyView = Mn.View.extend({
	el: 'body',
  template: false,
  myViewOptions: ['color', 'size', 'country'],

  initialize(options) {
    this.mergeOptions(options, this.myViewOptions);
  },

  onRender() {
    // The merged options will be attached directly to the prototype
    this.$el.addClass(this.color).addClass(this.size);
  }
});

const myView = new MyView({color: 'red', size: 'small'});
myView.render();