plotly / plotly/angular-plotly.js
TypeError: PlotlyService.plotly.purge is not a function
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 242
- Forks
- 81
- Avg merge
- 8h 48m
- Merged PRs (30d)
- 18
Description
Getting this error when switching active submodules
core.js:6486 ERROR Error: Uncaught (in promise): TypeError: PlotlyService.plotly.purge is not a function
TypeError: PlotlyService.plotly.purge is not a function
at Function.remove (:4200/default-src_app_service_comp-reg_service_ts.js:25186)
at PlotlyComponent.ngOnDestroy (:4200/default-src_app_service_comp-reg_service_ts.js:25348)
at executeOnDestroys (:4200/vendor.js:32351)
at cleanUpView (:4200/vendor.js:32254)
at destroyViewTree (:4200/vendor.js:32080)
at destroyLView (:4200/vendor.js:32232)
at RootViewRef.destroy (:4200/vendor.js:47596)
at ComponentRef$1.destroy (:4200/vendor.js:50130)
at RouterOutlet.deactivate (:4200/vendor.js:93334)
at ActivateRoutes.deactivateRouteAndOutlet (:4200/vendor.js:89858)
at resolvePromise (:4200/polyfills.js:1222)
at resolvePromise (:4200/polyfills.js:1176)
at :4200/polyfills.js:1288
at ZoneDelegate.invokeTask (:4200/polyfills.js:415)
at Object.onInvokeTask (:4200/vendor.js:53612)
at ZoneDelegate.invokeTask (:4200/polyfills.js:414)
at Zone.runTask (:4200/polyfills.js:187)
at drainMicroTaskQueue (:4200/polyfills.js:591)
defaultErrorLogger @ core.js:6486
Submodule config:
...
import { PlotlyViaCDNModule } from 'angular-plotly.js';
PlotlyViaCDNModule.setPlotlyVersion('latest');
PlotlyViaCDNModule.setPlotlyBundle('finance');
@NgModule({
declarations: [
DcComponent,
DcChartComponent,
...
],
imports: [
CommonModule,
DcRoutingModule,
...
PlotlyViaCDNModule,
...
]
...
}
export class DcModule { }
Note that the scenario is that the Plotly Data Card is configured and saved in one module, then dynamically loaded and displayed in another module. The error occurs sometimes when switching contexts (modules). I guess when the second by loading order is first loaded.
Env:
$ npm list angular-plotly.js
...
└── angular-plotly.js@4.0.4
$ ng version
_ _ ____ _ ___
/ \ _ __ __ _ _ _| | __ _ _ __ / ___| | |_ _|
/ △ \ | '_ \ / _` | | | | |/ _` | '__| | | | | | |
/ ___ \| | | | (_| | |_| | | (_| | | | |___| |___ | |
/_/ \_\_| |_|\__, |\__,_|_|\__,_|_| \____|_____|___|
|___/
Angular CLI: 12.2.12
Node: 14.17.0
Package Manager: npm 7.20.5
OS: linux x64
Angular: 12.2.12
... animations, cdk, cli, common, compiler, compiler-cli, core
... forms, language-service, material, platform-browser
... platform-browser-dynamic, router
Package Version
---------------------------------------------------------
@angular-devkit/architect 0.1202.12
@angular-devkit/build-angular 12.2.12
@angular-devkit/core 12.2.12
@angular-devkit/schematics 12.2.12
@angular/flex-layout 12.0.0-beta.35
@schematics/angular 12.2.12
rxjs 6.6.7
typescript 4.3.5
Thanks.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the dynamic module-switching scenario, then trace PlotlyComponent.ngOnDestroy and PlotlyService.plotly.purge in angular-plotly.js. Compare how PlotlyViaCDNModule is configured and loaded across the two modules; done means switching contexts no longer raises the purge TypeError.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- angular, typescript
- Domain
- frontend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100