Marionette.js. CollectionView's. isEmpty

If you want to control when the empty view is rendered, you can override `isEmpty`

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://cdnjs.cloudflare.com/ajax/libs/backbone.marionette/3.0.0/backbone.marionette.js"></script>

JavaScript

const myCollection = new Backbone.Collection([{}]);

const MyEmptyView = Mn.View.extend({
  template: _.template('Nothing to display.'),
  initialize(options) {
    console.log(options.foo); // => "bar"
  }
});

const MyCollectionView = Mn.CollectionView.extend({
  collection: myCollection,
  emptyView: MyEmptyView,
  isEmpty(options) {
    // some logic to calculate if the view should be rendered as empty
    return this.collection.length < 2;
  },
  emptyViewOptions: {
    foo: 'bar'
  }
});

const myCollectionView = new MyCollectionView();

myCollectionView.render();

$('body').append(myCollectionView.$el);