Chartjs2传奇无效

时间:2017-02-23 10:58:05

标签: ajax chart.js

我试图绘制一个使用Chartjs 2.5从ajax获取数据的直线图形。

这是此过程的主要功能。主要问题是图例不会出现。

function initDigitalValueChart(divName, ids) {
    if ($(divName)) {
        /*for (var j=0; j<ids.length; j++) {

                console.log(j);

                datasetValue[j] = {
                    fillColor: 'rgba(220,220,220,0.5)',
                    strokeColor :'rgba(220,220,220,1)',
                    title :'2013',
                    data : [Math.round(Math.random() * 1),Math.round(Math.random() * 1)]
                }
        }*/
        var datasetValue = [];
        var calls = [];
        for (var j = 0; j < ids.length; j++) {
            var labels = []
            URL = "*****" + ids[j];
            calls.push($.getJSON(URL, function(response) {
                var values = []
                if (response != null) {
                    $.each(response, function(index, data) {
                        labels.push(data["timestamp"]);
                        values.push(data["value"]);
                        title = data["sensorName"]
                    });
                    datasetValue.push({
                        label: title,
                        lineTension: 0,
                        borderColor: "rgba(" + Math.floor(Math.random() * 255) + ", " + Math.floor(Math.random() * 255) + ", " + Math.floor(Math.random() * 255) + ", 0.70)",
                        backgroundColor: "transparent",
                        data: values,
                        radius: 0,
                        pointHitRadius: 0,
                        steppedLine: true,
                    });
                }
            }))
        }
        $.when.apply($, calls).then(function() {
            var ctx = document.getElementById('digital').getContext("2d");
            var lineChart = new Chart(ctx, {
                type: 'line',
                data: {
                    labels: labels,
                    datasets: datasetValue
                },
                options: {
                    legend: {
                        display: true,
                        labels: {
                            fontColor: "white",
                            fontSize: 18
                        }
                    },
                    scales: {
                        xAxes: [{
                            display: true,
                            scaleLabel: {
                                display: true,
                                labelString: 'Data Hora'
                            }
                        }],
                        yAxes: [{
                            display: true,
                            scaleLabel: {
                                display: true,
                                labelString: 'Valor'
                            }
                        }]
                    }
                }
            });
            //document.getElementById('digital-legend').innerHTML = lineChart.generateLegend();
        });
    }
}

我尝试添加position: 'top'选项,但在这种情况下,控制台会返回

  

未捕获的TypeError:无法读取属性&#39; call&#39;未定义的

有没有其他人有这个问题?

0 个答案:

没有答案