Javascript 无法读取属性';类型';未定义的highcharts highstock

Javascript 无法读取属性';类型';未定义的highcharts highstock,javascript,jquery,highcharts,highstock,Javascript,Jquery,Highcharts,Highstock,我在一个视图中有四个高股价图表“比较多个系列” 有时它们加载得很好,但有时random不加载并给出错误:“无法读取未定义的属性“type” 这是我的代码: 我不知道我做错了什么。这是因为您错误地加载了图表的序列 用于再现错误的代码 该错误是由序列数组引起的,该数组的长度为length=2,但第一个元素未定义。在您的代码中,它是由不正确使用ajax请求引起的。可以在第一个ajax请求填充序列变量之前创建图表。您应该嵌套回调或使用其他方法来防止ajax请求的竞争 var series

我在一个视图中有四个高股价图表“比较多个系列” 有时它们加载得很好,但有时random不加载并给出错误:“无法读取未定义的属性“type”

这是我的代码:


我不知道我做错了什么。

这是因为您错误地加载了图表的序列

用于再现错误的代码

该错误是由序列数组引起的,该数组的长度为
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]
}]