我尝试生成一个谷歌图表。它返回" 无法读取属性' toLowerCase'未定义的"在图表区域但控制台中没有错误。
function drawChart(chart_data, chartType, chartOptions){
console.log(chartOptions);
var data = new google.visualization.DataTable(chart_data);
var chart = new google.visualization.ChartWrapper({
chartType: chartType,
dataTable: data,
options: chartOptions,
containerId: 'chart'
});
chart.draw();
}
console.log
的结果是一个看起来像的字符串:
{"title":"test","vAxis":{"minValue":"0"},"hAxis":{"showTextEvery":"1"},"chartArea":{"width":"70%","height":"90%"},"pointSize":"7","height":"500","intervals":{"lineWidth":2,"barWidth":0.5,"color":"#000000"}}
如果我使用(复制粘贴)console.log
的结果而不是chartOptions
作为options
,则图表会完美显示。
我在这里缺少什么?
答案 0 :(得分:1)
我能想到的唯一解释(假设复制粘贴工作正常),就是在一个实例中你发送一个字符串,当你复制粘贴它时,你就有了一个对象。
因此,如果您查看控制台日志,它应该看起来像上图中的第一个。如果它看起来像第二个,你需要做
chartOptions = JSON.parse(chartOptions);
var chart = new google.visualization.ChartWrapper({
chartType: chartType,
dataTable: data,
options: chartOptions,
containerId: 'chart'
});