Javascript Highcharts在尝试添加新图表时表示undefined不是一个函数
我正在尝试将highcharts添加到我的angular应用程序中。我正在从谷歌表单中获取数据,并通过调用谷歌返回一个承诺对象。然后我用options对象调用Highcharts.Chart()方法 打电话时,我得到下面的错误信息。我试图弄清楚到底发生了什么,但我现在迷路了。我有一个原型,我不使用角度和图表工程伟大。当我去添加新的Highcharts.Chart(选项)行时,我得到下面的错误。我去掉那条线,错误就消失了 任何想法/帮助都会很好 错误:Javascript Highcharts在尝试添加新图表时表示undefined不是一个函数,javascript,highcharts,Javascript,Highcharts,我正在尝试将highcharts添加到我的angular应用程序中。我正在从谷歌表单中获取数据,并通过调用谷歌返回一个承诺对象。然后我用options对象调用Highcharts.Chart()方法 打电话时,我得到下面的错误信息。我试图弄清楚到底发生了什么,但我现在迷路了。我有一个原型,我不使用角度和图表工程伟大。当我去添加新的Highcharts.Chart(选项)行时,我得到下面的错误。我去掉那条线,错误就消失了 任何想法/帮助都会很好 错误: TypeError: undefined i
TypeError: undefined is not a function
at Object.Chart.init (/highcharts.src.js:11014:4)
at Object.Chart (/highcharts.src.js:10937:12)
at data.then.$scope.sheetdata (/js/controllers/controlChartCtrl.js:11:17)
at wrappedCallback (/angularjs/1.2.6/angular.js:10905:81)
at /angularjs/1.2.6/angular.js:10991:26
at Scope.$eval (/angularjs/1.2.6/angular.js:11906:28)
at Scope.$digest (/angularjs/1.2.6/angular.js:11734:31)
at Scope.$delegate.__proto__.$digest (<anonymous>:844:31)
at /angularjs/1.2.6/angular.js:11945:26
at completeOutstandingRequest (/angularjs/1.2.6/angular.js:4098:10)
我解决了这个问题。解决办法如下 Highcharts需要jQuery才能正常工作。当我在highcharts.js文件上方添加jquery.js文件时,angular应用程序开始正常工作
谢谢你的反馈 Highcharts不需要JQuery来工作(当前的答案是错误的),但是您需要先加载“独立框架”库:
define([
'vnd/highcharts/standalone-framework',
'vnd/highcharts/highcharts',
], function(){
...
}
有关演示,请参见@Sebastian的jsfiddle:
愚蠢的问题:库是否正确加载?显示您的指令。堆栈跟踪清楚地表明问题出在
js/directives/highcharts.js:14:35
中。可以将您的示例复制为jsFiddle吗?抱歉,我删除了该指令。原始帖子没有在堆栈跟踪中反映这一点。我已经更新了堆栈跟踪以反映删除的指令。错误:“at data.then.$scope.sheetdata(/js/controllers/controlChartCtrl.js:11:17)”是以下行:“var chart=new Highcharts.chart(options);”您也可以使用,然后不需要jquery。谢谢@SebastianBochan!加上这个答案,我会投赞成票。Highcharts需要jQuery才能正常运行代码>这是不正确的。
angular.module('controlChartCtrl', []).
controller('ControlChartCtrl', ['$scope', 'GoogleService', function($scope, GoogleService) {
var data = GoogleService.getData();
$scope.helloworld = "hello world!";
data.then(function (data) {
// create charts here
var options = getOptionsForChart('Feature', 'feature', data);
var chart = new Highcharts.Chart(options);
}, function (error) {
$scope.sheetdata = error;
});
var getOptionsForChart = function (title, div, data) {
return {
chart: {
renderTo: div,
type: 'line'
},
title: {
text: title + ' Control Chart'
},
xAxis: {
title: {
text: 'End Dates'
},
categories: data.endDates
},
yAxis: {
title: {
text: 'Lead Time'
}
},
series: [{
name: 'Lead Time',
data: data.leadTimes
}]
};
}
}]);
define([
'vnd/highcharts/standalone-framework',
'vnd/highcharts/highcharts',
], function(){
...
}