添加
ngOnDestroy() {
Chart.pluginService.unregister(this.horizonalLinePlugin);
}
在你的
ProductDetailComponent
https://stackblitz.com/edit/angular-uxfwqb?file=src/app/product-detail/product-detail.component.ts
这里的问题是,如果同时有多个图表组件可见,那么插件将在所有其他图表中可见。
-
只注册一次插件,在ngInit之外。。。直接在模块文件中或全局某个位置。这将影响整个应用程序中的所有图表,但不必注销它,因此很明显,影响所有图表的是全局性的。
-
在chart.js(或angular2 chartjs的pull请求)上创建自己的包装器组件/指令,该组件/指令可以接受
plugins
Chart
建造师
http://www.chartjs.org/docs/latest/developers/plugins.html
:
var chart1 = new Chart(ctx, { plugins: [plugin] });
这将允许你有一个带插件的图表和一个不带插件的图表,所以不需要注册/注销全局插件。