下面的代码应该创建一个新的条形图,但是我遇到一个“未捕获的TypeError:无法设置未定义的属性'data'”,它指向第一行(var chart = new Chart等)
var chart = new Chart(document.getElementById("chart1"), {
type: 'bar',
data: {
labels: ["Label1", "Label2", "Label3", "Label4"],
datasets: [{
label: "Num incidents",
backgroundColor: 'rgba(54, 162, 235, 0.2)',
data: [89,57,25,28]
}],
},
options: {
scales: {
yAxes: [{
ticks: {
beginAtZero: true
}
}]
}
}
})
我有一个包含以下内容的html文件:
<head>
<meta charset="utf-8"/>
<script
src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.4.0/Chart.min.js">
</script>
</head>
<div class="column">
<canvas id="chart1"></canvas>
</div>
我是否还需要在js文件中包含chartjs api?
还是我需要在我的js文件中的某个地方调用图表?
答案 0 :(得分:1)
为我工作。一定是命令。
尝试一下:
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.4.0/Chart.min.js" type="application/javascript"></script>
</head>
<body>
<div class="column">
<canvas id="chart1"></canvas>
</div>
<script type="application/javascript">
var chart = new Chart(document.getElementById("chart1"), {
type: 'bar',
data: {
labels: ["Label1", "Label2", "Label3", "Label4"],
datasets: [{
label: "Num incidents",
backgroundColor: 'rgba(54, 162, 235, 0.2)',
data: [89,57,25,28]
}],
},
options: {
scales: {
yAxes: [{
ticks: {
beginAtZero: true
}
}]
}
}
});
</script>
</body>
</html>
答案 1 :(得分:0)
在您的html文件中:
<script src="myJavascript.js"> </script>
问题是您没有在html中包含js文件。确保在html末尾包含js文件,例如:
<head>
<meta charset="utf-8"/>
<script
src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.4.0/Chart.min.js">
</script>
</head>
<div class="column">
<canvas id="chart1"></canvas>
</div>
<script src="myJavascript.js"></script>
之后,它将正常工作。您需要先加载页面,以便您的JS知道将创建的图表放在哪里。
在jquery中,您可以使用document.ready
函数,但是由于您没有jquery标签,因此我会避免提及为页面准备就绪的侦听器,并建议为方便起见将其放在最后。