code: function() {
        this.trigger('before-dispose');
        this.trigger('before-dispose-callback');
        this._dispose();
  
        // Detach DOM and deactivate the view
        this.detach();
        this.deactivate();
  
        // Clean up child views first
        this.__disposeChildViews();
  
        // Remove view from DOM
        if (this.$el) {
          this.remove();
        }
  
        // Unbind all local event bindings
        this.off();
        this.stopListening();
        if (this.viewState) {
          this.viewState.off();
          this.viewState.stopListening();
        }
        if (this.feedbackCell) {
          this.feedbackCell.off();
          this.feedbackCell.stopListening();
        }
        // Delete the dom references
        delete this.$el;
        delete this.el;
  
        this.__isDisposed = true;
        this.trigger('after-dispose');
      }
docs: Removes all listeners, disposes children views, stops listening to events, removes DOM.
  After dispose is called, the view can be safely garbage collected. Called while
  recursively removing views from the hierarchy.
  @method dispose