就像我会在页面上使用google.script.run在div上注入新的html而不重新加载一样,我花了无数个小时试图做同样的事情但是使用谷歌可视化饼图,我想打电话给很多根据需要通过回调获取google.run.script。
这是具有多个回调的按钮:
<button onclick="google.script.run.withSuccessHandler(refresh).report(user());">Generate report</button>
好的,这就是用户所做的:
<script>
function user() {
var user = $("input[type=radio]:checked").val();
return user;
}
</script>
Report()只返回图表的新数据数组,它将根据用户的不同而变化。
最后这是我的图表脚本。
<script>
google.load("visualization", "1", {packages:["corechart"], "callback": refresh});
google.setOnLoadCallback(refresh);
function refresh(e) {
var data = google.visualization.arrayToDataTable(e);
var options = {
title: 'Chart',
is3D: true,
pieSliceText: 'label',
};
var chart = new google.visualization.PieChart(document.getElementById('piechart_3d'));
chart.draw(data, options);
}
</script>
我的脚本一直按预期工作,除了我每次单击按钮时都无法更新图表的结尾。这会为图表加载新的数组数据。我已经为这篇文章简化了代码。
答案 0 :(得分:0)
我设法通过使用JSON.parse(e)解析回调值来使其按预期工作,这对我来说非常隐蔽。