Javascript 无法通过Charts.JS显示数据

Javascript 无法通过Charts.JS显示数据,javascript,jquery,ajax,chart.js,frontend,Javascript,Jquery,Ajax,Chart.js,Frontend,我第一次使用Charts.JS,遇到了一个无法显示数据的问题 简单地说,我从API返回数据,但无法显示它。我可能做错了什么,但我想如果有人有建议,我会问的 另外,我在发布这篇文章之前也尝试过搜索StackOverflow。我找不到相关的帖子。如果你知道一个,请分享 提前感谢您的帮助 函数renderChart(数据){ var ctx=document.getElementById(“vitalSignsCanvas”).getContext(“2d”); var myChart=新图表(ct

我第一次使用Charts.JS,遇到了一个无法显示数据的问题

简单地说,我从API返回数据,但无法显示它。我可能做错了什么,但我想如果有人有建议,我会问的

另外,我在发布这篇文章之前也尝试过搜索StackOverflow。我找不到相关的帖子。如果你知道一个,请分享

提前感谢您的帮助

函数renderChart(数据){
var ctx=document.getElementById(“vitalSignsCanvas”).getContext(“2d”);
var myChart=新图表(ctx{
键入:“行”,
数据:{
数据集:[{
标签:“本周”,
数据:数据[0],
边框颜色:“rgba(75192192,1)”,
背景颜色:“rgba(751921920.2)”,
}]
},
选项:{
比例:{
雅克斯:[{
滴答声:{
贝吉纳泽罗:是的,
}
}]
},
}
});
}
函数getVitalSign(memberIDNum、shiftFromDate、shiftToDate、isLive、baseURL){
var webMethod=baseURL+“/api/GetVitalSign”;
$.ajax({
键入:“获取”,
url:webMethod,
contentType:“应用程序/json;字符集=utf-8”,
数据类型:“json”,
数据:{
memberID:memberIDNum,
fromDate:shiftFromDate,
toDate:shiftToDate
},
成功:功能(结果){
var parsedData=JSON.parse(结果);
var数据=[];
数据推送(parsedData.Answer);
renderChart(数据);
},
错误:函数(xhr,状态){
警报(“发生错误。请与支持团队联系。”);
console.log(xhr.responseText);
控制台日志(xhr.status);
}
});
}

生命体征

申请及复印件;二零二零年

  • 确保将
    响应作为
    对象返回(使用
    控制台.log(响应类型)进行测试)
  • 确保将数据转换为预期格式(请参阅
    dataToChartData
    接受对象数组的函数)
  • 在成功处理程序中,只需调用以下两行:
示例:

const-config={
键入:“行”,
数据:{
数据集:[{
标签:“本周”,
数据:[],//最初设置为空数据
边框颜色:“rgba(75192192,1)”,
背景颜色:“rgba(751921920.2)”,
}]
},
选项:{
比例:{
xAxes:[{
// https://www.chartjs.org/docs/latest/axes/cartesian/time.html
键入:“时间”,
分布:“线性”,
时间:{
//解析器:“YYYY-MM-DD HH:MM:ss',//不需要
单位:'自定义',
显示格式:{
'custom':'YYYY-MM-DD',//或类似'YYYY-MM-DD HH:MM:ss',
}
},
滴答声:{
资料来源:“数据”
}
}],
雅克斯:[{
滴答声:{
贝吉纳泽罗:是的,
}
}],
/*标题:{
显示:假
}*/
}
}
};
const ctx=document.querySelector(“vitalSignsCanvas”).getContext(“2d”);
const myChart=新图表(ctx,配置);
const dataToChartData=arr=>{
返回arr.map(项目=>{
返回{
x:item.SavedDate,
y:项目,回答
};
});
};
//演示的示例结果:
常数结果=[{
“问题”:“温度”,“问题ID”:30060,“回答”:87.00,“保存日期”:“2020-02-14T10:59:34.27Z”,“PAHID”:1
},{
“问题”:“温度”,“问题ID”:30060,“回答”:92.00,“保存日期”:“2020-02-15T10:59:34.45Z”,“PAHID”:2
},{
“问题”:“温度”,“问题ID”:30060,“回答”:64.00,“保存日期”:“2020-02-16T10:59:34.45Z”,“PAHID”:3
},{
“问题”:“温度”,“问题ID”:30060,“回答”:67.00,“保存日期”:“2020-02-17T10:59:34.45Z”,“PAHID”:4
},{
“问题”:“温度”,“问题ID”:30060,“答案”:98.00,“保存日期”:“2020-02-18T10:59:34.45Z”,“PAHID”:5
},{
“问题”:“温度”,“问题ID”:30060,“回答”:77.00,“保存日期”:“2020-02-19T10:59:34.45Z”,“PAHID”:6
},{
“问题”:“温度”,“问题ID”:30060,“回答”:81.00,“保存日期”:“2020-02-20T10:59:34.45Z”,“PAHID”:7
}
];
//这将进入成功处理程序内部
myChart.data.datasets[0].data=dataToChartData(结果);
myChart.update()
#vitalSignsCanvas{显示:块;宽度:100%;最小高度:200px;}
生命体征:图表
  • 确保将
    响应作为
    对象返回(使用
    控制台.log(响应类型)进行测试)
  • 确保将数据转换为预期格式(请参阅
    dataToChartData
    接受对象数组的函数)
  • 在成功处理程序中,只需调用以下两行:
示例:

const-config={
键入:“行”,
数据:{
数据集:[{
标签:“本周”,
数据:[],//最初设置为空数据
边框颜色:“rgba(75192192,1)”,
背景颜色:“rgba(751921920.2)”,
}]
},
选项:{
比例:{
xAxes:[{
// https://www.chartjs.org/docs/latest/axes/cartesian/time.html
键入:“时间”,
分布:“线性”,
时间:{
//解析器:“YYYY-MM-DD HH:MM:ss',//不需要
单位:'自定义',
显示格式:{
'custom':'YYYY-MM-DD',//或类似'YYYY-MM-DD HH:MM:ss',
}
},
滴答声:{
资料来源:“数据”
}
}],
雅克斯:[{
滴答声:{
贝吉纳泽罗:是的,
}
}],
/*标题:{
显示:假
}*/
}
}
};
const ctx=document.querySelector(“vitalSignsCanvas”).getContext(“2d”);
const myChart=新图表(ctx,配置);
const dataToChartData=arr=>{
返回arr.map(项目=>{
返回
    myChart.data.datasets[0].data = dataToChartData(result);
    myChart.update();