chart.js 无法创建图表:无法从给定项目获取上下文

chart.js Failed to create chart: can#39;t acquire context from the given item(chart.js 无法创建图表:无法从给定项目获取上下文)
本文介绍了chart.js 无法创建图表:无法从给定项目获取上下文的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我从来没有进入过节点,所以我很确定我在这里做错了什么,因为我通过谷歌搜索根本找不到任何信息.

I never got into node so I am pretty sure I am doing something massively wrong here since I cannot find any info at all by googling.

我有一个 django 网站,我想要一个 JS 图表库,我选择了 chart.js.

I have a django site and I wanted a JS charting library, I chose chart.js.

我安装并喜欢文档,但之后我不确定该怎么做,所以我尝试填写空白并尽可能遵循他们的指南.这是我的 html 的样子....

I installed and like the docs, but after that I am unsure of what to do so I tried to fill in the blanks and follow their guide as much as possible. Here is what my html looks like....

<script src="/public/node_modules/chart.js/dist/Chart.js"></script>

<canvas id="myChart" width="400" height="400"></canvas>

<script>    
    var ctx = document.getElementById("myChart");
    console.log(ctx);

    var options = {}

    var data = {
        labels: ["January", "February", "March", "April", "May", "June", "July"],
        datasets: [
            {
                label: "My First dataset",
                fill: false,
                lineTension: 0.1,
                backgroundColor: "rgba(75,192,192,0.4)",
                borderColor: "rgba(75,192,192,1)",
                borderCapStyle: 'butt',
                borderDash: [],
                borderDashOffset: 0.0,
                borderJoinStyle: 'miter',
                pointBorderColor: "rgba(75,192,192,1)",
                pointBackgroundColor: "#fff",
                pointBorderWidth: 1,
                pointHoverRadius: 5,
                pointHoverBackgroundColor: "rgba(75,192,192,1)",
                pointHoverBorderColor: "rgba(220,220,220,1)",
                pointHoverBorderWidth: 2,
                pointRadius: 1,
                pointHitRadius: 10,
                data: [65, 59, 80, 81, 56, 55, 40],
                spanGaps: false,
            }
        ]
    };

    var myChart = new Chart({
        type: 'line',
        data: data,
        options: options
    })
</script>

我只是想让一个例子工作.我将通过 npm 下载的 node_modules 目录放在我的服务器将为它们提供服务的某个地方......并验证它们正在被提供服务,但是当我尝试构建图表时出现此错误.我从他们的文档中获取了所有图表代码,所以我很确定那部分是正确的,但我不明白为什么会出现这个错误.

I am just trying to get an example working. I put the node_modules directory that was downloaded via npm somewhere where my server would serve them up....and verified they are being served, but then I get this error when I try to build a chart. I took all the chart codes from their docs so I am pretty sure that part is right, but I can't see why I am getting this error.

推荐答案

调用构造函数时没有传递画布的 2d 上下文 (ctx).来自文档:

You are not passing the 2d context of the canvas (ctx) when calling the constructor. From the documentation:

要创建图表,我们需要实例化 Chart 类.去做这个,我们需要传入节点、jQuery 实例或 2d 上下文我们要绘制图表的画布.

To create a chart, we need to instantiate the Chart class. To do this, we need to pass in the node, jQuery instance, or 2d context of the canvas of where we want to draw the chart.

<canvas id="myChart" width="400" height="400"></canvas>

可以使用以下任何格式:

Any of the following formats may be used:

var ctx = document.getElementById('myChart'); // node
var ctx = document.getElementById('myChart').getContext('2d'); // 2d context
var ctx = $('#myChart'); // jQuery instance
var ctx = 'myChart'; // element id

var myChart = new Chart(ctx, {
  type: 'line',
  data: {/* Data here *

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Update another component when Formik form changes(当Formik表单更改时更新另一个组件)
Formik validation isSubmitting / isValidating not getting set to true(Formik验证正在提交/isValiating未设置为True)
React Validation Max Range Using Formik(使用Formik的Reaction验证最大范围)
Validation using Yup to check string or number length(使用YUP检查字符串或数字长度的验证)
Updating initialValues prop on Formik Form does not update input value(更新Formik表单上的初始值属性不会更新输入值)
password validation with yup and formik(使用YUP和Formick进行密码验证)