Highcharts MVC无法获得属性'系列的价值':对象为null或未定义

时间:2012-12-04 16:14:48

标签: javascript jquery asp.net-mvc highcharts

我试图在IE9中运行Highcharts的这个例子

http://www.highcharts.com/studies/live-server.htm

但是我没有调用php脚本,而是执行以下操作:

function requestData() {            
        var MyAppUrlSettings = {
            MyUsefulUrl: '/PaymentConfirmation/UpdateChart?numSecondsToGoBack=3600'
        }

        $.ajax({
            url: MyAppUrlSettings.MyUsefulUrl,
            type: "POST",
            async: false,
            dataType: "json",
            success: function (PaymentConfirmationData) {
                $.each(PaymentConfirmationData, function (i, PaymentConfirmation) {

                    var d = new Date(); 
                    d.setTime(parseInt(PaymentConfirmation.TimeMilliSeconds));                            
                    var milli = d.getTime();
                    var series = chart.series[0],
                 shift = series.data.length > 20; // shift if the series is longer than 20
                    // add the point
                    chart.series[0].addPoint([milli, PaymentConfirmation.Count], true, shift);

                    // call it again after one second
                    setTimeout(requestData, 1000);
                });
            },
            error: function (xhr, status, error) {
                alert("An AJAX error occured: " + status + "\nError: " + error);
            },
            cache: false
        });
    }

现在就像在示例中一样,图表对象是全局声明的(我认为这在某种程度上不起作用!!!)

注意:“$(document).ready(function(){”函数就像示例中那样。

请提前帮助和谢谢。

1 个答案:

答案 0 :(得分:0)

这里没有看到实际的图表代码是我最好的猜测。您没有正确定义系列对象。这一行是我认为的问题:

var series = chart.series[0],

我认为应该是;而不是,

此外,如果您仍然收到此错误,那么您创建的chart没有series,但随后尝试将某个点推送到series[0]。确保创建一个空系列(或在series创建后创建chart)。就像在给出的示例页面中一样:

series: [{
     name: 'Random data',
     data: []
   }]