gpt4 book ai didi

javascript - 我可以向 Google Charts Load 的回调函数传递参数吗?

转载 作者:行者123 更新时间:2023-12-01 00:24:48 25 4
gpt4 key购买 nike

我正在尝试使用 Google Charts、SnappyPDF 和 Laravel 在 PDF 上动态显示图表,最初基于 this邮政。我发送了一个 Laravel $arrayChart View 中的变量进行测试,并获得成功:

    <script type="text/javascript" src="http://www.google.com/jsapi"></script>

<script type="text/javascript">
function init() {
google.load("visualization", "1.1", {
packages: ["corechart"],
callback: 'drawCharts'
});
}

function drawCharts() {
var data = google.visualization.arrayToDataTable({!! $arrayChart !!});
var options = {
title: 'My Daily Activities',
};
var chart = new google.visualization.ColumnChart(document.getElementById('columnchart'));
chart.draw(data, options);
}
</script>
</head>
<body onload="init()">
<div id="columnchart"></div>

</body>

看起来,我在页面上有一个带有“columnchart”id 的 div 并在他身上渲染图表。但是,我真正要做的是将 Chart 的动态数据集传递给 drawCharts()动态显示数据的函数,类似这样:

  <script type="text/javascript" src="http://www.google.com/jsapi"></script>

<script type="text/javascript">
function init(data) {
google.load("visualization", "1.1", {
packages: ["corechart"],
callback: 'drawCharts(data)'
});
}

function drawCharts(obj) {
var data = google.visualization.arrayToDataTable(obj);
var options = {
title: 'My Daily Activities',
};
var chart = new google.visualization.ColumnChart(document.getElementById('columnchart'));
chart.draw(data, options);
}
</script>
</head>
<body onload="init({!! $arrayChart !!})">
<div id="columnchart"></div>
</body>

不起作用。如何将参数传递给 google.load 回调?

最佳答案

一种方法是传递对回调函数的引用(而不是字符串),并将参数绑定(bind)到该引用:

回调:drawCharts.bind(null, data)

参见Function.bind

或者,您可以创建一个新函数,该函数调用原始函数并向其传递参数:

callback: () => drawCharts(data)

关于javascript - 我可以向 Google Charts Load 的回调函数传递参数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59110284/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com