refactor(upgrade): share code for destroying upgraded components between `dynamic` and `static` (#25357)

PR Close #25357
This commit is contained in:
George Kalpakas 2018-08-07 17:36:23 +03:00 committed by Misko Hevery
parent 51c26b8afb
commit 71007ef9b2
3 changed files with 9 additions and 11 deletions

View File

@ -119,6 +119,13 @@ export class UpgradeHelper {
return this.compileHtml(template);
}
onDestroy($scope: angular.IScope, controllerInstance?: any) {
if (controllerInstance && isFunction(controllerInstance.$onDestroy)) {
controllerInstance.$onDestroy();
}
$scope.$destroy();
}
prepareTransclusion(): angular.ILinkFn|undefined {
const transclude = this.directive.transclude;
const contentChildNodes = this.extractChildNodes();

View File

@ -262,13 +262,7 @@ class UpgradeNg1ComponentAdapter implements OnInit, OnChanges, DoCheck {
}
}
ngOnDestroy() {
if (this.controllerInstance && isFunction(this.controllerInstance.$onDestroy)) {
this.controllerInstance.$onDestroy();
}
this.componentScope.$destroy();
}
ngOnDestroy() { this.helper.onDestroy(this.componentScope, this.controllerInstance); }
setComponentProperty(name: string, value: any) {
this.destinationObj ![this.propertyMap[name]] = value;

View File

@ -217,10 +217,7 @@ export class UpgradeComponent implements OnInit, OnChanges, DoCheck, OnDestroy {
if (isFunction(this.unregisterDoCheckWatcher)) {
this.unregisterDoCheckWatcher();
}
if (this.controllerInstance && isFunction(this.controllerInstance.$onDestroy)) {
this.controllerInstance.$onDestroy();
}
this.$componentScope.$destroy();
this.helper.onDestroy(this.$componentScope, this.controllerInstance);
}
private initializeBindings(directive: angular.IDirective) {