可视化:未捕获类型错误:无法读取未定义的属性“arrayToDataTable”
Visualization : Uncaught TypeError: Cannot read property 'arrayToDataTable' of undefined
我正在尝试从我创建的数据数组中绘制图形,但失败了。我尝试了我在这里看到的相同主题的所有内容,但没有帮助。请指教。同一页面中有 HTML,但我觉得显示它并不重要。
<script src = "http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src = "http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"> </script>
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
<script type="text/javascript">
function getData(dateRange){
var date = new Date();
var currentDateInFormat = date.getFullYear() + "-" + date.getDate() + "-" + date.getMonth() + 1;
var BASE_URL = 'https://query.yahooapis.com/v1/public/yql?q=';
var yql_query_for_table_data;
var dataArray = ['Date' , 'Stock Value'];
if(dateRange === "year"){
yql_query_for_table_data = 'select * from yahoo.finance.historicaldata where symbol = "YHOO" and startDate = "2009-09-11" and endDate = "2010-03-01"';
}
else if(dateRange === "halfYear"){
yql_query_for_table_data = 'select * from yahoo.finance.historicaldata where symbol = "'+ symbol + '" and startDate = "2015-30-06" and endDate = "'+ currentDateInFormat + '"';
}
var yql_query_str_for_table_data = encodeURI(BASE_URL + yql_query_for_table_data);
var query_str_final_for_table_data = yql_query_str_for_table_data + "&format=json&diagnostics=true&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys";
$.getJSON(query_str_final_for_table_data , function(data){
var stockArray = data.query.results.quote;
for (var i=0; i<stockArray.length ; i++){
var currentObject = stockArray[i];
var pushArray = [currentObject.Date , parseFloat(currentObject.Close)];
dataArray[i+1] = pushArray;
}
google.load('visualization' , '1.0' , {'packages':['corechart']});
var chartData = google.visualization.arrayToDataTable(dataArray);
var chart = new google.visualization.LineChart(document.getElementById('chart_div'));
return dataArray;
});
}
function buttonPressed(buttonTitle){
console.log(buttonTitle);
getData(buttonTitle);
}
</script>
您需要等待谷歌可视化完成加载其库,然后才能使用这些库。而不是
google.load('visualization', '1.0', {'packages':['corechart']});
var chartData = google.visualization.arrayToDataTable(dataArray);
var chart = new google.visualization.LineChart(document.getElementById('chart_div'));
使用回调来确保arrayToDataTable
在使用之前确实存在:
google.load('visualization', '1.0', {'packages':['corechart']});
google.charts.setOnLoadCallback(function() {
var chartData = google.visualization.arrayToDataTable(dataArray);
var chart = new google.visualization.LineChart(document.getElementById('chart_div'));
})
相关文章:
- 将对象作为参数传递后的未定义属性
- 检查链接对象形式中未定义属性的最佳实践是什么
- PhantomJS中的evalute内部未定义属性
- 访问数字类型的未定义属性
- 如何处理未定义属性的未定义属性 javascript 类型错误
- 返回未定义属性的脚本
- 类型错误:无法读取 ng-repeat 的未定义属性
- JavaScript-Disqus如何处理其“;disqus_config”;包含未定义属性的函数
- 是对HTMLElement#样式的未定义属性的赋值的返回值,保证与赋值相同
- 最好检查未定义属性或设置为空
- 如何解决这个未定义属性的node.js错误?
- 如何在JavaScript中挽救对象的未定义属性?
- AngularJS和PHP -注意:未定义属性:stdClass
- 主干模型删除未定义属性
- if else子句中未定义对象的未定义属性
- Javascript数组问题:无法读取未定义属性
- 当尝试使用未定义属性进行筛选时,Lodash将排除项
- 在Javascript数组的中途未定义属性
- Knockout arrayForEach未定义属性
- javascript中未定义属性的简写,初始化和赋值属性