angular2react icon indicating copy to clipboard operation
angular2react copied to clipboard

Trigger $destroy on jqLite elements

Open cozmy opened this issue 5 years ago • 0 comments

Currently, componentWillUnmount only calls this.state.scope.$destroy(). It should also "destroy" the compiled element so $destroy is trigger: https://docs.angularjs.org/api/ng/function/angular.element#events

$destroy - AngularJS intercepts all jqLite/jQuery's DOM destruction apis and fires this event on all DOM nodes being removed. This can be used to clean up any 3rd party bindings to the DOM element before it is removed.

3rd party libraries depend on this: see $mdMenu fron AngularJS Material.

How to implement:

  1. In compile do: this.setState({ compiledElement: $injector.get('$compile')(element)(this.state.scope) });
  2. In componentWillUnmount do angular.element(this.state.compiledElement).empty();

cozmy avatar Feb 26 '20 12:02 cozmy