MOBILE-4470 format-text: Destroy instances of external-content
parent
47e9f07782
commit
bb018c530f
|
@ -99,6 +99,7 @@ export class CoreFormatTextDirective implements OnChanges, OnDestroy, AsyncDirec
|
|||
protected emptyText = '';
|
||||
protected domPromises: CoreCancellablePromise<void>[] = [];
|
||||
protected domElementPromise?: CoreCancellablePromise<void>;
|
||||
protected externalContentInstances: CoreExternalContentDirective[] = [];
|
||||
|
||||
constructor(
|
||||
element: ElementRef,
|
||||
|
@ -145,6 +146,7 @@ export class CoreFormatTextDirective implements OnChanges, OnDestroy, AsyncDirec
|
|||
this.domElementPromise?.cancel();
|
||||
this.domPromises.forEach((promise) => { promise.cancel();});
|
||||
this.elementControllers.forEach(controller => controller.destroy());
|
||||
this.externalContentInstances.forEach(extContent => extContent.ngOnDestroy());
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -191,6 +193,8 @@ export class CoreFormatTextDirective implements OnChanges, OnDestroy, AsyncDirec
|
|||
|
||||
extContent.ngAfterViewInit();
|
||||
|
||||
this.externalContentInstances.push(extContent);
|
||||
|
||||
const changeDetectorRef = this.viewContainerRef.injector.get(ChangeDetectorRef);
|
||||
changeDetectorRef.markForCheck();
|
||||
|
||||
|
@ -341,6 +345,10 @@ export class CoreFormatTextDirective implements OnChanges, OnDestroy, AsyncDirec
|
|||
* Format contents and render.
|
||||
*/
|
||||
protected async formatAndRenderContents(): Promise<void> {
|
||||
// Destroy previous instances of external-content.
|
||||
this.externalContentInstances.forEach(extContent => extContent.ngOnDestroy());
|
||||
this.externalContentInstances = [];
|
||||
|
||||
if (!this.text) {
|
||||
this.element.innerHTML = this.emptyText; // Remove current contents.
|
||||
|
||||
|
|
Loading…
Reference in New Issue