demo/amd/rjs/output/unified/marionette-build.js
function() {
      var children = this.children;
      var models = this._filteredSortedModels();
  
      if (!models.length && this._showingEmptyView) { return this; }
  
      var anyModelsAdded = _.some(models, function(model) {
        return !children.findByModel(model);
      });
  
      // If there are any new models added due to filtering
      // We need to add child views
      // So render as normal
      if (anyModelsAdded) {
        this.render();
      } else {
        // get the DOM nodes in the same order as the models
        var elsToReorder = _.map(models, function(model, index) {
          var view = children.findByModel(model);
          view._index = index;
          return view.el;
        });
  
        // find the views that were children before but arent in this new ordering
        var filteredOutViews = children.filter(function(view) {
          return !_.contains(elsToReorder, view.el);
        });
  
        this.triggerMethod('before:reorder');
  
        // since append moves elements that are already in the DOM,
        // appending the elements will effectively reorder them
        this._appendReorderedChildren(elsToReorder);
  
        // remove any views that have been filtered out
        _.each(filteredOutViews, this.removeChildView, this);
        this.checkEmpty();
  
        this.triggerMethod('reorder');
      }
    }
function() {
      var children = this.children;
      var models = this._filteredSortedModels();
  
      if (!models.length && this._showingEmptyView) { return this; }
  
      var anyModelsAdded = _.some(models, function(model) {
        return !children.findByModel(model);
      });
  
      // If there are any new models added due to filtering
      // We need to add child views
      // So render as normal
      if (anyModelsAdded) {
        this.render();
      } else {
        // get the DOM nodes in the same order as the models
        var elsToReorder = _.map(models, function(model, index) {
          var view = children.findByModel(model);
          view._index = index;
          return view.el;
        });
  
        // find the views that were children before but arent in this new ordering
        var filteredOutViews = children.filter(function(view) {
          return !_.contains(elsToReorder, view.el);
        });
  
        this.triggerMethod('before:reorder');
  
        // since append moves elements that are already in the DOM,
        // appending the elements will effectively reorder them
        this._appendReorderedChildren(elsToReorder);
  
        // remove any views that have been filtered out
        _.each(filteredOutViews, this.removeChildView, this);
        this.checkEmpty();
  
        this.triggerMethod('reorder');
      }
    }
function ( ) { var children = this . children ; var models = this . _filteredSortedModels ( ) ; if ( ! models . length && this . _showingEmptyView ) { return this ; } var anyModelsAdded = _ . some ( models , function ( model ) { return ! children . findByModel ( model ) ; } ) ; // If there are any new models added due to filtering // We need to add child views // So render as normal if ( anyModelsAdded ) { this . render ( ) ; } else { // get the DOM nodes in the same order as the models var elsToReorder = _ . map ( models , function ( model , index ) { var view = children . findByModel ( model ) ; view . _index = index ; return view . el ; } ) ; // find the views that were children before but arent in this new ordering var filteredOutViews = children . filter ( function ( view ) { return ! _ . contains ( elsToReorder , view . el ) ; } ) ; this . triggerMethod ( 'before:reorder' ) ; // since append moves elements that are already in the DOM, // appending the elements will effectively reorder them this . _appendReorderedChildren ( elsToReorder ) ; // remove any views that have been filtered out _ . each ( filteredOutViews , this . removeChildView , this ) ; this . checkEmpty ( ) ; this . triggerMethod ( 'reorder' ) ; } }
Reorder DOM after sorting. When your element's rendering do not use their index, you can pass reorderOnSort: true to only reorder the DOM after a sort instead of rendering all the collectionView
Reorder DOM after sorting . When your element s rendering do not use their index you can pass reorderOnSort : true to only reorder the DOM after a sort instead of rendering all the collectionView