在将其标记为重复之前,请注意其他人询问错误Invalid column index undefined. ...
或Invalid column index 5. Should be an integer in the range [0-4].
,但没有。我的是" 3应该是[0-3]范围内的整数。"另外,该表确实在没有formatter.format()
线的情况下工作(只是没有格式)。
google.charts.load('current', {'packages':[data.chartType.toLowerCase()]});
google.charts.setOnLoadCallback(function(){
var googleData = new google.visualization.DataTable();
for (var h in data.headers) {
googleData.addColumn(data.headers[h].type, data.headers[h].html);
if (data.headers[h].format) {
var formatter = new google.visualization.NumberFormat(data.headers[h].format);
console.log(data.headers[h].format);
formatter.format(googleData, h); // Errors Here
}
}
/* ... Add Rows ... Draw Chart ... */
}
所讨论的标题看起来像这样:
header[3] = {
"html": "Total Amount",
"source": "total_amount",
"type": "number",
"format": {
"negativeColor": "#F05840", //orange
"negativeParens": true,
"pattern": "#,###",
"prefix": "$",
"suffix": "",
}
}
我不知道为什么会出错。
请在这里原谅我的任何错别字,我必须手工编辑间距,并在此处粘贴代码后删除公司的具体信息。
编辑
Whitehat是正确的,因为我的h
变量是字符串而不是整数,而调用parseInt
确实删除了该错误。但是,我没有在格式化器上调用parseInt
,无论其他地方都需要在其他地方调用for (var h in data.headers)
的呼叫,而是使用沼泽标准的for (var h = 0; h < data.headers.length; h++)
。尽管有更多的详细词和更多的错别字空间,但它的标准化和可预测性更高。
我仍然对GoogleCharts Numberformatter有问题,但这是另一回合的研究和问题。
确保您通过一个数字(3
),
而不是字符串('3'
),
通过使用 -> parseInt
...
例如。
formatter.format(googleData, parseInt(h)); // <-- here