我正在尝试根据全局取消注册chartjs插件 https://chartjs-plugin-datalabels.netlify.com/guide/getting-started.html#registration
我的角度应用程序结构
布局---->
module a---> lazy loaded
component a1---> chart js chart
module b ----> lazy loaded
component b1---> chart js chart
module c---->lazy loaded
这些组件从.ts文件中获取我的选项
我正在使用通用的ts文件
我的.ts文件
import ChartDataLabels from "chartjs-plugin-datalabels";
Chart.plugins.unregister(ChartDataLabels);
// a function which return chart options to component
get myChartOptions()
{
var options = new Options(); //my class
let plugin = options.getPlugin(); //another .ts file which assign value
return options;
}
Expected: Chartjs Data Plugin will get unregistered itself at load.
Actual: Plugin is not getting itself unregistered. Datalabels are
being in on component change also.
How to globally unregister the plugin in .ts file ??
答案 0 :(得分:2)
在顶级文件导入中:
ChartDataLabels from "chartjs-plugin-datalabels"
Chart from "chart.js"
现在禁用插件:
Chart.plugins.unregister(ChartDataLabels);
我使用React,这三行位于render方法之前的index.js中。
您现在可以通过将其添加到图表组件中来在本地启用该插件:
plugins = {[ChartDataLabels]}
<Pie
type="pie"
data={data}
borderWidth="10"
plugins={[ChartDataLabels]}
...
答案 1 :(得分:0)
我发现唯一可行的解决方案是在图表的每个实例上禁用它。 https://www.chartjs.org/docs/latest/developers/plugins.html#disable-plugins
示例:
options: {
plugins: {
p1: false // disable plugin 'p1' for this instance
}
}