【发布时间】:2020-03-04 19:29:27
【问题描述】:
我已经浏览了有关此问题的所有帖子,但我无法解决它。
我的 chartjs 折线图创建得很好。我正在尝试测试更新它(添加数据),但我被困在 chart.data.labels.push(labels) 上,因为它指出对象在控制台中未定义。然而在控制台上,前一行,我写了对象的 id,它是正确的,所以它有 ref。
有什么想法吗?
图表创建良好
$(function () {
LoadChart();
});
function LoadChart() {
var ctx = document.getElementById('myChart');
var myChart = new Chart(ctx, {
type: 'line',
data: {
labels: ['9:30', '9:31', '9:32', '9:33', '9:34', '9:35'],
datasets: [{
label: 'RSI',
data: [12, 19, 3, 5, 2, 3],
borderWidth: 1
}]
},
options: {
title: {
display: true,
text: 'Custom Chart Title'
}
}
});
}
尝试更新图表时出错
$.connection.redisHub.client.addData = function (chartID, labels, data) {
var chart = document.getElementById(chartID);
console.log("chart: " + chart.id);
chart.data.labels.push(labels);
chart.data.datasets.forEach((dataset) => {
dataset.data.push(data);
});
chart.update();
}
控制台输出 您可以看到它正确地将“图表:myChart”写入控制台,显示我们有对象 ref。正确的。
asp代码调用js函数(这里一切正常)
string[] labels = { "9:36", "9:37" };
int[] data = { 9, 10 };
Clients.All.addData("myChart", labels, data);
html : 一切顺利
<div class="col-sm-8">
<canvas id="myChart" width="400" height="200"></canvas>
</div>
提前谢谢你
【问题讨论】:
-
是的,我通过了那个帖子,他的错误在于他创建初始图表的顺序。这是不同的,因为我已经正确创建了初始图表,现在正尝试向其中“添加”数据,并且我之前在该行上有对象引用。我尽我所能搜索以前的帖子,谢谢
-
好的,你能在 var chart = document.getElementById(chartID); 中添加一个console.log(labels)吗? console.log("图表:" + chart.id); chart.data.labels.push(labels);
-
是的会尝试并报告谢谢你...标签是我传递的数据,你的意思是chart.data.labels
-
console.log(labels) 输出我正确传递的数据: Array(2) 0: "9:36" 1: "9:37" length: 2 & console.log(chart) 的相同错误.data.labels);
标签: javascript c# html asp.net chart.js