谷歌图表"Uncaught (in promise) Error: Invalid column index 3. Should be an integer in the range [0-3]."



在将其标记为重复之前,请注意其他人询问错误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

相关内容

  • 没有找到相关文章