code: function() {
        if (this.isDisposed()) {
          throw new Error('Render called on a view that has already been disposed.');
        }
        var view = this;
        this.trigger('render:begin');
        if (this.prerender() === false) {
          this.trigger('render:aborted');
          return $.Deferred().resolve().promise();
        }
        this.__updateInjectionSiteMap();
        this.trigger('render:before-dom-update');
        this.detachTrackedViews();
        this.updateDOM();
        if (this.__pendingAttachInfo) {
          this.__performPendingAttach();
        }
        this.trigger('render:after-dom-update');
        this.delegateEvents();
        this.trigger('render:after-delegate-events');
        this.unregisterTrackedViews({ shared: true });
        this.trigger('render:before-attach-tracked-views');
        this.__attachViewsFromInjectionSites();
        var promises = this.attachTrackedViews();
        return $.when.apply($, _.flatten([promises])).done(function() {
          view.postrender();
          view.trigger('render:complete');
          view.__injectionSiteMap = {};
          view.__lastTrackedViews = {};
        });
      }
docs: Rebuilds the html for this view's element. Should be able to be called at any time.
  Defaults to using this.templateRender. Assumes that this.template is a javascript
  function that accepted a single JSON context.
  The render method returns a promise that resolves when rendering is complete. Typically render
  is synchronous and the rendering is complete upon completion of the method. However, when utilizing
  transitions/animations, the render process can be asynchronous and the promise is useful to know when it has finished.
  @method render
  @return {Promise} a promise that when resolved signifies that the rendering process is complete.