javascript - 示例:甜甜圈 | 错误:未捕获的 ReferenceError:未定义 Utils
问题描述
不幸的是,我在这个例子中失败了。我包括以下脚本:
<script src="https://code.jquery.com/jquery-3.6.0.min.js" integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4=" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-Piv4xVNRyMGpqkS2by6br4gNJ7DXjqk09RmUpJ8jgGtD7zP9yug3goQfGII0yAns" crossorigin="anonymous"></script>
<script type="module" src="https://cdn.jsdelivr.net/npm/chart.js@3.2.0/dist/helpers.esm.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/chart.js@3.2.0/dist/chart.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/chart.js@3.2.0/dist/chart.js"></script>
<script type="module" src="https://cdn.jsdelivr.net/npm/chart.js@3.2.0/dist/chart.esm.min.js"></script>
这是我的功能(它是示例方面的副本) https://www.chartjs.org/docs/3.2.0/samples/other-charts/doughnut.html
function donutchart(){
//-----SETUP-------
const DATA_COUNT = 5;
const NUMBER_CFG = {count: DATA_COUNT, min: 0, max: 100};
const data = {
labels: ['Red', 'Orange', 'Yellow', 'Green', 'Blue'],
datasets: [
{
label: 'Dataset 1',
data: Utils.numbers(NUMBER_CFG),
backgroundColor: Object.values(Utils.CHART_COLORS),
}
]
};
//-----Config----------
const config = {
type: 'doughnut',
data: data,
options: {
responsive: true,
plugins: {
legend: {
position: 'top',
},
title: {
display: true,
text: 'Chart.js Doughnut Chart'
}
}
},
};
//-------Actions--------
const actions = [
{
name: 'Randomize',
handler(chart) {
chart.data.datasets.forEach(dataset => {
dataset.data = Utils.numbers({count: chart.data.labels.length, min: 0, max: 100});
});
chart.update();
}
},
{
name: 'Add Dataset',
handler(chart) {
const data = chart.data;
const newDataset = {
label: 'Dataset ' + (data.datasets.length + 1),
backgroundColor: [],
data: [],
};
for (let i = 0; i < data.labels.length; i++) {
newDataset.data.push(Utils.numbers({count: 1, min: 0, max: 100}));
const colorIndex = i % Object.keys(Utils.CHART_COLORS).length;
newDataset.backgroundColor.push(Object.values(Utils.CHART_COLORS)[colorIndex]);
}
chart.data.datasets.push(newDataset);
chart.update();
}
},
{
name: 'Add Data',
handler(chart) {
const data = chart.data;
if (data.datasets.length > 0) {
data.labels.push('data #' + (data.labels.length + 1));
for (var index = 0; index < data.datasets.length; ++index) {
data.datasets[index].data.push(Utils.rand(0, 100));
}
chart.update();
}
}
},
{
name: 'Remove Dataset',
handler(chart) {
chart.data.datasets.pop();
chart.update();
}
},
{
name: 'Remove Data',
handler(chart) {
chart.data.labels.splice(-1, 1); // remove the label first
chart.data.datasets.forEach(dataset => {
dataset.data.pop();
});
chart.update();
}
}
];
// === include 'setup' then 'config' above ===
var myChart = new Chart(
document.getElementById('Quota'),
config
);
}
如果我运行脚本,我会收到以下错误消息: Uncaught ReferenceError: Utils is not defined
现在我一直在寻找一两天什么是“utils”以及如何整合它
请帮我!谢谢托马斯
解决方案
Utils 是一个帮助文件 chart.js 使用并在内部生成数据集和其他一些东西,它在 chart.js 版本 3 中作为公共源被删除,如果你想使用它,你可以在这里下载它:( https:// /github.com/chartjs/Chart.js/blob/master/docs/scripts/utils.js)或在此处获取在线文件:(https://www.chartjs.org/samples/2.9.4/utils.js )
如果您想要一个好的起点/示例,您可以从使用页面复制代码,有一个基本图表的图表代码,您不需要任何其他内容:https ://www.chartjs.org/docs/ master/getting-started/usage.html
推荐阅读
- android - Ionic Cordova 7.1.4 Android 构建失败
- c++ - 如何处理来自另一个线程的 win32 事件?
- python - Python从字符串中删除嵌套的unicode'u'符号
- amazon-web-services - 无法使用 Postman 使用预签名 URL 将文件上传到 S3。错误:签名不匹配
- javascript - 将元素绝对定位在部分底部会添加不需要的第二个滚动条
- c# - 使用多个用户控件从 Mysql 数据库加载大数据的最佳方法
- html - 每行中具有相同高度单元格的表格布局
- php - 通过 PDO fetchAll (PDO::FETCH_OBJ) 获取从 DB 检索到的对象的属性
- reactjs - ReactJS 组件状态没有按预期改变
- vue.js - 更改 Vue JS 项目的 .vue 文件中的值不起作用