使用google embed api和datatables可视化我的分析。问题是列没有正确使用 - 即所有内容都被视为字符串。我有这段代码:
gapi.client.analytics.data.ga.get(queryObj1).execute(function(results){
var myTable = new google.visualization.DataTable(results.dataTable);
....
这会正确创建myTable,当我调试时,我看到创建的列具有正确的类型 - 字符串或数字。但是,当我检查results.dataTable(查询返回的对象)中的值时,我注意到所有内容都是字符串 - 正如人们对ajax调用所期望的那样。
我发现this thread有关重写sort函数的问题,但这对我来说似乎有点复杂,如果出现任何问题,我不确定我是否能够解决它。
我的方法是遍历数据表并将所有数字列转换为实际数字。
function makeNumbers(results){
// make numbers actually numbers so they will sort properly
for(var c in results.cols){
// check if the column is a number type
if(results.cols[c].type === "number"){
// fix the values for that column is all the rows
for(var r in results.rows){
results.rows[r].c[c].v = +results.rows[r].c[c].v
}
}
}
return results;
}
这似乎很有效,而且在我看来比改变排序功能简单得多。
有人能看到这个问题吗?或者更好的方法呢?