我使用Python / Django和默认的Django模板。 我头脑中有这个(这个位置的其他django静态文件工作正常):
<script type="text/javascript" src="{% static "js/Chart.min.js" %}"></script>
当然,我将Chart.min.js从主Chart.js下载中提取到静态js目录中。
在我的身体里,我有:
<div class="graph">
<canvas id="dgraph" width="600" height="400"></canvas>
</div>
我身体也有:
<script type="text/javascript" src="{% static "js/stuff.js" %}"></script>
在stuff.js中我有:
var data = [
{
value: 20,
color:"#878BB6"
},
{
value : 40,
color : "#4ACAB4"
},
{
value : 10,
color : "#FF8153"
},
{
value : 30,
color : "#FFEA88"
}
];
//获取我们想要选择的canvas元素的上下文
var ctx = document.getElementById("dgraph").getContext("2d");
new Chart(ctx).Doughnut(data, {});
然而,当我尝试在浏览器中显示它时(Chrome发生了)我在控制台中看到了这一点:
Uncaught ReferenceError: Chart is not defined
地球上的Chart对象是从哪里获得的?这似乎是非常基础的,我觉得好像我已经遵循了google和stackoverflow上的所有可用指令。请帮忙!
答案 0 :(得分:3)
Chart
对象在Chart.min.js中定义。看起来该脚本没有被加载。
我认为您的标题中src
标记中的<script>
属性值缺少引号 - 请尝试:
<script type="text/javascript" src="{% static 'js/Chart.min.js' %}"></script>
答案 1 :(得分:1)
我发现通过将包含jQuery的行包含在Chart.min.js所包含的行之后,它会栩栩如生。像这样:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<!-- Include all compiled plugins (below), or include individual files as needed -->
<script type="text/javascript" src="{% static 'js/Chart.min.js' %}"></script>
据推测,Chart.js依赖于jQuery。