JS 在 google 图表上使用 class 方法 setOnLoadCallback
JS Use a class method at google chart setOnLoadCallback
我有一个有效的 JS 代码可以在页面上显示一些 google 图表。我以为我将其重构为 JS class 像这样(清除并最小化了示例代码):
class MyChar {
show(title) {
this.title = title;
google.charts.load('current', { 'packages': ['bar'] });
google.charts.setOnLoadCallback(this._googleChartOnLoadCallback);
}
_googleChartOnLoadCallback() {
console.log("_googleChartOnLoadCallback is called", this.title);
// do stuff needed here
}
}
我想这样称呼:
var myChart = new MyChart();
myChart.show("My cool chart");
我希望在开发人员控制台上看到标题,但出现错误指向 _googleChartOnLoadCallback 方法的第一行:
Uncaught (in promise) TypeError: this is undefined
google 图表加载器是(html 头):
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
我的问题是:可以或不能在回调中使用 class 方法 - 还是我遗漏了什么?如果我不能使用回调 - 那么如何将图表特定数据插入(添加)回调函数?
提前致谢!
找到解决方案:
var f = this._googleChartOnLoadCallback.bind(this);
google.charts.setOnLoadCallback(f);
我有一个有效的 JS 代码可以在页面上显示一些 google 图表。我以为我将其重构为 JS class 像这样(清除并最小化了示例代码):
class MyChar {
show(title) {
this.title = title;
google.charts.load('current', { 'packages': ['bar'] });
google.charts.setOnLoadCallback(this._googleChartOnLoadCallback);
}
_googleChartOnLoadCallback() {
console.log("_googleChartOnLoadCallback is called", this.title);
// do stuff needed here
}
}
我想这样称呼:
var myChart = new MyChart();
myChart.show("My cool chart");
我希望在开发人员控制台上看到标题,但出现错误指向 _googleChartOnLoadCallback 方法的第一行:
Uncaught (in promise) TypeError: this is undefined
google 图表加载器是(html 头):
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
我的问题是:可以或不能在回调中使用 class 方法 - 还是我遗漏了什么?如果我不能使用回调 - 那么如何将图表特定数据插入(添加)回调函数?
提前致谢!
找到解决方案:
var f = this._googleChartOnLoadCallback.bind(this);
google.charts.setOnLoadCallback(f);