获取错误:LineChart不是构造函数,并且图表未显示在网页中

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了获取错误:LineChart不是构造函数,并且图表未显示在网页中相关的知识,希望对你有一定的参考价值。

我有一个html文件,应该显示一个图表,显示过去几分钟内特定进程的详细信息。当我声明google.charts.load('current', {'packages':['line']}); google.charts.setOnLoadCallback($scope.drawChart);时,它给出如下错误

未捕获(承诺)TypeError:google.visualization.LineChart不是$ scope.drawChart的构造函数

我不知道如何调用此函数。以下是我的控制器JS文件中的代码。

$scope.drawChart = function() {

    var finaldata = [[{label:'Process', type: 'string'}, {label: 'NumOfNewAssociations', type: 'number'}, {label: 'NumOfClosedAssociations', type: 'number'}, {label: 'NumOfSavedImages', type: 'number'}, {label: 'SizeOfSavedImagesInBytes', type: 'number'}]];
    for (var i = 1; i < 2/*$scope.storestats2.length*/; i++) {
        finaldata[i] = [$scope.storestats2.Process, $scope.storestats2.NumOfNewAssociations, $scope.storestats2.NumOfClosedAssociations, $scope.storestats2.NumOfSavedImages, $scope.storestats2.SizeOfSavedImagesInBytes];
    }

    var data = google.visualization.arrayToDataTable(finaldata);
    var options = {
        chart: {
            title: 'Range-wise Store statistics',
            subtitle: 'in the last 30 minutes'
        },
        width: 900,
        height: 500
    };
    var chart = new google.visualization.LineChart(document.getElementById('linechart_material'));
    chart.draw(data, google.charts.Line.convertOptions(options));
};

我甚至尝试在HTML文件中包含以下内容:

<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>

这是我打算在我的HTML中调用函数的地方:

<div id="linechart_material" style="width: 900px; height: 500px"></div>

我也能够看到网页中分配的空间,但没有任何东西出现在网页上。所有其他功能都完美无缺,除了这个图表的东西。我甚至试过只做一张图表。还是一样。但是,当我将它作为一个单独的HTML文件,使用嵌入式JS控制器和其他本地定义的数组时,代码工作正常。但我不能让它在我必须在不同文件中的上下文中工作。

答案

我不小心偶然发现了解决这个问题的方法。但我仍然不知道它是如何解决的以及为什么。

我所要做的只是在代码的一行中进行更改:

我不得不改变:

var chart = new google.visualization.LineChart(document.getElementById('linechart_material'));

var chart = new google.charts.Line(document.getElementById('linechart_material'));

以上是关于获取错误:LineChart不是构造函数,并且图表未显示在网页中的主要内容,如果未能解决你的问题,请参考以下文章

关于flex图表控件问题

获取未捕获的 TypeError: ...default 不是构造函数 - 来自 Vue 组件

节点模块@kenjiuno/msgreader 错误的原因:MsgReader 不是构造函数

JavaFX LineChart 悬停值

动态更改 LineChart 的线条颜色

将自定义行添加到JavaFX LineChart