LS_*_*LS_ 5 google-analytics google-analytics-api
我需要格式化从Google Analytics(分析)获得的响应,然后再将其显示在Google图表中,我尝试在on("success"...方法被触发时编辑响应,但是我发现它在调用之后被调用.execute()。
在收到响应之后并填充图表之前,有什么方法可以编辑它?
这是我的功能:
var dataChart5 = new gapi.analytics.googleCharts.DataChart({
reportType: 'ga',
query: {
'ids': 'ga:***', // My ID
'start-date': '31daysAgo',
'end-date': 'yesterday',
'metrics': 'ga:users,ga:percentNewSessions,ga:sessions,ga:bounceRate,ga:avgSessionDuration,ga:pageviews,ga:pageviewsPerSession',
'prettyPrint':'true',
},
chart: {
'container': 'chart-5-container',
'type': 'TABLE',
'options': {
'width': '100%',
'title': 'test'
}
}
});
dataChart5.on('success', function(response) {
response.data.cols[0].label = "test1"; //here I edit the response
console.log(response);
});
dataChart5.execute();
Run Code Online (Sandbox Code Playgroud)
使用,console.log(response);我可以看到记录已label被修改,但图表在编辑之前已被填充。
我认为有一个解决方法。它有问题,但可能有用。在处理success事件时,调用一个函数,该函数将递归地遍历 的子元素$('#chart-5-container')并在那里应用您的格式。
这种方法的一个问题是元素的位置不会被重新计算。因此,对于不同的字符串大小,您可能会得到重叠的字符串。此外,它似乎不会影响工具提示。
\n\n我正在使用这种方法翻译成葡萄牙语。
\n\nfunction recursiveTranslate(e) {\n var key = e.html(),\n dict = {};\n\n dict['Date'] = 'Data';\n dict['Users'] = 'Visitantes';\n dict['Sessions'] = 'Visitas';\n dict['Pageviews'] = 'Visualiza\xc3\xa7\xc3\xb5es';\n\n if (key in dict) {\n e.html(dict[key]);\n }\n\n for (var i = 0; i < e.children().length; i++) {\n recursiveTranslate($(e.children()[i]));\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n\n然后我recursiveTranslate在成功事件中调用:
dataChart5.on('success', function h(obj) {\n recursiveTranslate($('#chart-5-container'));\n});\nRun Code Online (Sandbox Code Playgroud)\n\n它不优雅并且有很多问题。我真的很想找到正确的解决方案。
\n| 归档时间: |
|
| 查看次数: |
445 次 |
| 最近记录: |