当使用Angular和chart.js时,即使指定了type也会出现错误,让我陷入困境

环境- the environment

・Angular/CLI版本11.2.19
・Node版本12.16.3
・操作系统Windows
・Chart.js版本3.9.1

具体的的错误 de

re.js:6210 ERROR Error: "pie" is not a registered controller.

得出结论

import { registerables } from 'chart.js';

导入 registerables 时,

Chart.register(...registerables);

在绘制图表之前进行添加。
※这是我个人的情况。

// ファイルの一番上で
import { registerables } from 'chart.js';
~


ngAfterViewInit() {
	Chart.register(...registerables);
	~ //以降グラフ作成コード
}

实际上,由于需要Chart,所以import的形式如下。

import { Chart, registerables } from 'chart.js';

造成这种情况的原因

虽然我不太清楚,但我认为可能是因为 TypeScript 的类型问题导致的。
好像 Chart.js 的 Chart 类的 type 属性不是字符串类型,所以会报错。如果我错了,请原谅我。

经过

因为在项目中需要使用Angular来绘制饼图,所以考虑使用Chart.js来绘制图表,但是发现图表没有显示在屏幕上,感到很困惑。
尝试使用其他库如ng2-charts或ngx-charts,但由于Angular的版本不太适用,所以只能使用Chart.js。

印象

解決這個問題花了非常多的時間,大概花了一天半這麼久。這真的是非常浪費時間。
但因為覺得直接用原生CSS來繪製圖表比較麻煩,所以我非常努力地解決這個問題。
由於 Angular 的文獻太少了(全都是英文),所以老實說我不想使用 Angular。
而且 Angular 的版本變動頻率太高了,有些功能能做,有些又不能,這讓我很難找到適合自己的文章。
希望 Angular 的版本變更頻率能再降低一點,就好了…

希望这篇文章对某人有所帮助。

请随意留下评论或意见,喜欢任何形式都可以。

广告
将在 10 秒后关闭
bannerAds