Javascript 无法读取属性';类型';未定义的highcharts highstock
我在一个视图中有四个高股价图表“比较多个系列” 有时它们加载得很好,但有时random不加载并给出错误:“无法读取未定义的属性“type” 这是我的代码:Javascript 无法读取属性';类型';未定义的highcharts highstock,javascript,jquery,highcharts,highstock,Javascript,Jquery,Highcharts,Highstock,我在一个视图中有四个高股价图表“比较多个系列” 有时它们加载得很好,但有时random不加载并给出错误:“无法读取未定义的属性“type” 这是我的代码: 我不知道我做错了什么。这是因为您错误地加载了图表的序列 用于再现错误的代码 该错误是由序列数组引起的,该数组的长度为length=2,但第一个元素未定义。在您的代码中,它是由不正确使用ajax请求引起的。可以在第一个ajax请求填充序列变量之前创建图表。您应该嵌套回调或使用其他方法来防止ajax请求的竞争 var series
我不知道我做错了什么。这是因为您错误地加载了图表的序列 用于再现错误的代码 该错误是由序列数组引起的,该数组的长度为
length=2
,但第一个元素未定义。在您的代码中,它是由不正确使用ajax请求引起的。可以在第一个ajax请求填充序列变量之前创建图表。您应该嵌套回调或使用其他方法来防止ajax请求的竞争
var seriesOptionsmaxload = [];
$.getJSON('/test/statistics/5/list?parameter=maxLoad&type=wats', function (max) {
seriesOptionsmaxload[0] = {
name: 'Maksymalne obciążenie',
color: '#ff0000',
data: max
};
$.getJSON('/test/statistics/5/list?parameter=maxLoad&type=perKg', function (max) {
seriesOptionsmaxload[1] = {
name: 'W/kg',
color: '#085fbc',
data: max
};
Highcharts.stockChart('maxLoad', {
...
});
});
我已经打了第二次了,现在我知道是什么引起了它 当图形数据具有如下序列数据时:
series: [1, 2, null, 3, 4]
或
它将抛出此错误,因为highstock.src.js
显示highstock遍历数组中的每个项并检查type属性,如下所示:
i = seriesOptions && seriesOptions.length;
while (!value && i--) {
klass = seriesTypes[seriesOptions[i].type]; // ERROR THROWN HERE
if (klass && klass.prototype[key]) {
value = true;
}
}
要防止此错误,您可以:
(1) 从阵列中删除所有非对象
或
(2) 使用替代系列格式,如下所示:
series: [{
data: [1, 2, undefined, 3, 4]
}]
这将避免此错误。如何将js文件加载到html文档中?通常,发生这些类型的错误是因为加载的顺序不正确。例如,您试图将一个图表添加到一个尚不存在的div中。您好,脚本位于正文部分末尾,函数为:code.highcharts.com/stock/highstock.js“>code.highcharts.com/stock/modules/exporting.js”>确定我在获取第一个JSON时使用block,获取第二个JSON,然后生成有效的图表,谢谢!
i = seriesOptions && seriesOptions.length;
while (!value && i--) {
klass = seriesTypes[seriesOptions[i].type]; // ERROR THROWN HERE
if (klass && klass.prototype[key]) {
value = true;
}
}
series: [{
data: [1, 2, undefined, 3, 4]
}]