谷歌图表加载器google.charts.load不会触发回调

时间:2016-09-13 10:28:20

标签: javascript angular google-visualization systemjs

我有一个神秘的错误,它只在今天开始发生。我在angular2 web应用程序中使用了谷歌图表库,并在初始化应用程序之前加载了相应的包。今天早上,当我试图重新加载页面时,什么也没发生!

我使用systemJS作为项目的模块加载器。要在启动应用程序之前加载google图表包,我将这行放在systemjs.config.js的底部附近:

google.charts.load('current',{ 'packages': ['corechart'] } );
google.charts.setOnLoadCallback(go);

function go(){
  console.log('go!');
  System.import ( baseUrl + '/app/main.js').then(null, console.error.bind(console));
}

我的问题是,从今天早晨起,go未被调用!

  • 我已检查过正在下载加载程序。它使用的是版本45并且已经有一段时间了。这里没什么新鲜的。
  • 我已经检查过,以防函数名go过于通用并在其他地方定义 - 事实并非如此。
  • google.charts.load根本没有丢失任何错误。
  • 来自加载程序的网络没有请求。
  • 运行项目本地时出现此错误,目前我在生产网站上没有出现任何错误。

非常感谢任何想法 - 提前感谢!

更新

我已经能够加载可视化对象了一点点。我特意加载了装载机的第45版:

https://www.gstatic.com/charts/45/loader.js

然后在我的配置中我有:

  google.charts.versionSpecific.load('45',{ 'packages': ['corechart'] } );

setOnCallback仍然不起作用,但我认为目前,库在需要之前下载,所以我没有收到任何错误。这是理想的解决方案,甚至是正确的解决方案。我仍然想找到根本原因。

更新2

截至今天上午,完全相同的代码再次运行。我只能认为加载器中的代码必然会有一些临时更改,导致它无法执行任何有用的操作。我将在论坛上查看是否有任何证据。

0 个答案:

没有答案