【发布时间】:2019-12-17 14:53:38
【问题描述】:
您好,当我尝试在我的 Angular 项目中动态创建一些图表时,我遇到了这个错误。
Chart.js:9352 未能创建图表:无法从 给定项目
export class StudentStudyProgressComponent implements OnInit {
charts = [];
semesters = [1, 2, 3, 4, 5, 6];
constructor(private logic: LogicService) {
}
ngOnInit() {
this.makeDetailCharts(this.semesters);
}
private makeDetailCharts(semesters: number[]) {
semesters.forEach((semester)=>{
this.charts.push(
new Chart('chartStudyProgress' + semester, {
type: 'doughnut',
data: {
labels: ['Geslaagd', 'Opgenomen', 'Resterend'],
datasets: [
{
data: this.logic.giveStudyProgressForSemester(this.student.Curriculum, semester),
borderColor: "#3cba9f",
backgroundColor: [
('#66B266'),
('#FFFF66'),
('#FF7F7F')
]
}
]
},
options: {
title: {
display: true,
text: 'Semester '+semester
},
legend: {
display: false
},
}
})
);
});
}
}
我认为当我想在我的 html 中动态创建图表时会出现问题:
<div class="row" *ngFor="let semester of semesters">
<div class="col-4">
<div [hidden]="!charts">
<canvas id="{{'chartStudyProgress'+semester}}" style="max-width: 30%;">{{ charts[semester] }}</canvas>
</div>
</div>
</div>
如果我静态声明图表,它会起作用:
<div class="row" >
<div class="col-4">
<div [hidden]="!charts">
<canvas id="chartStudyProgress1" style="max-width: 30%;">{{ charts[1] }}</canvas>
<canvas id="chartStudyProgress2" style="max-width: 30%;">{{ charts[2] }}</canvas>
<canvas id="chartStudyProgress3" style="max-width: 30%;">{{ charts[3] }}</canvas>
<canvas id="chartStudyProgress4" style="max-width: 30%;">{{ charts[4] }}</canvas>
<canvas id="chartStudyProgress5" style="max-width: 30%;">{{ charts[5] }}</canvas>
<canvas id="chartStudyProgress6" style="max-width: 30%;">{{ charts[6] }}</canvas>
</div>
</div>
</div>
是否有专家可以帮助我动态创建图表?
【问题讨论】:
-
数组从 0 开始。
标签: angular typescript chart.js ngfor