我在Angular 15中使用Chart.js,控制台显示以下内容。2个错误-
1.vendor.js:209527创建图表失败:无法从给定项目获取上下文。
1.Canvas已在使用中。必须先销毁ID为“2”的图表,然后才能重用ID为“MyChart”的画布。我有输入字段,可以将数据添加到图表中。添加后,我看到了这个错误。即使应用程序运行,但我想需要修复这个错误。它是可能的,而不添加ng 2-图表库?
HTML
<div class="chart-container" [hidden]="!chart">
<canvas id="MyChart" >{{chart}}</canvas>
</div>
ts
if (this.chart)
this.chart.destroy();
this.chart = new Chart('MyChart', {
type: 'line',
data: {
labels: monthLabels,
datasets: [
{
label: 'Weight',
data: weightLabels,
backgroundColor: 'blue',
},
],
},
options: {
aspectRatio: 2.5,
},
1条答案
按热度按时间ddarikpa1#
从您的错误消息中,相信您正在尝试添加数据并重新绘制图表。如果图表已经呈现,并且您正在尝试重新绘制图表,则会遇到此问题。
方法1:每次将数据添加到图表并重新绘制时销毁图表:
方法2:使用
update()
API注意,在
<canvas
元素中不需要Angular插值{{ chart }}
。当您通过指定元素id作为第一个参数来创建Chart示例时,它将找到匹配的HTML元素并呈现。Demo @ StackBlitz
参考:Line Chart Demo with adding data