google.script.run在HTML服务页面重新加载谷歌图表

时间:2018-01-27 18:54:45

标签: google-apps-script google-visualization

就像我会在页面上使用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>

我的脚本一直按预期工作,除了我每次单击按钮时都无法更新图表的结尾。这会为图表加载新的数组数据。我已经为这篇文章简化了代码。

1 个答案:

答案 0 :(得分:0)

我设法通过使用JSON.parse(e)解析回调值来使其按预期工作,这对我来说非常隐蔽。