Reputation: 191
I keep getting this error and I wasn't able to display a Chart.js chart yet, although I have tried multiples codes I found on the internet.
Here is the relevant part of the HTML :
<head>
<script src = "https://cdnjs.cloudflare.com/ajax/libs/Chart.js/1.0.2/Chart.min.js"></script>
...
</head>
<body>
<canvas id = "myChart"></canvas>
...
</body>
Here is the javascript :
var ctx = document.getElementById("myChart");
var myChart = new Chart(ctx, {
type: 'bar',
data: {
labels: ["Red", "Blue", "Yellow", "Green", "Purple", "Orange"],
datasets: [{
label: '# of Votes',
data: [12, 19, 3, 5, 2, 3],
backgroundColor: [
'rgba(255, 99, 132, 0.2)',
'rgba(54, 162, 235, 0.2)',
'rgba(255, 206, 86, 0.2)',
'rgba(75, 192, 192, 0.2)',
'rgba(153, 102, 255, 0.2)',
'rgba(255, 159, 64, 0.2)'
],
borderColor: [
'rgba(255,99,132,1)',
'rgba(54, 162, 235, 1)',
'rgba(255, 206, 86, 1)',
'rgba(75, 192, 192, 1)',
'rgba(153, 102, 255, 1)',
'rgba(255, 159, 64, 1)'
],
borderWidth: 1
}]
},
options: {
scales: {
yAxes: [{
ticks: {
beginAtZero:true
}
}]
}
}
});
I found that example here : http://www.chartjs.org/docs/
And I get this error in the console :
TypeError: t is undefined
Can someone help please ? Thanks.
Upvotes: 6
Views: 23352
Reputation: 742
I'm using 2.8.0 (current latest). Earlier versions as suggested here did not help.
The solution to this error for me was providing the correct element ID for the context. I was giving new Chart()
"chartjs-1" because I blindly copied an example, but my canvas ID was "myCanvas". Giving new Chart()
the actual ID of my canvas fixed the problem.
Note, the error in the question is from Firefox. Chrome gave a different error that clued me into the real culprit: Cannot read property 'length' of null
Upvotes: 1
Reputation: 21
Put the javascript code (start with <script type="text/javascript">var ctx ...</script>
) after the canvas element. This ensures that the canvas element is already present at the time when it gets referenced by var ctx = document.getElementById("myChart");
This should solve your problem.
Upvotes: 2
Reputation: 191
Solved, apparently the script link I was using was bugged. Changed it to https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.4.0/Chart.min.js and it works fine. See Chris G
's comment.
Upvotes: 4