Google api 在初始页面加载时在模板中呈现javascript
我正在尝试从GoogleCharts api加载图表。在很大程度上,它是按计划运作的。问题出现在初始页面加载时。如果我从我网站的另一部分导航到页面(使用路由器),它可以正常加载。但是,如果我点击页面上的刷新按钮,图表在我离开并重新进入页面之前不会加载 我的main.html标题中有以下内容:Google api 在初始页面加载时在模板中呈现javascript,google-api,meteor,Google Api,Meteor,我正在尝试从GoogleCharts api加载图表。在很大程度上,它是按计划运作的。问题出现在初始页面加载时。如果我从我网站的另一部分导航到页面(使用路由器),它可以正常加载。但是,如果我点击页面上的刷新按钮,图表在我离开并重新进入页面之前不会加载 我的main.html标题中有以下内容: <script type="text/javascript" src="http://www.google.com/jsapi"></script> 其中drawChart()调用
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
其中drawChart()调用google可视化命令。我知道我现在可能调用了一些重复的代码,但所有这些都是为了在我点击刷新时加载页面
谢谢你的帮助
请让我知道,如果有任何更多的信息需要。谢谢。将Google jsapi文件放在main.html头中会导致浏览器在DOM完全加载后运行Javascript,这对于您来说太晚了
Meteor正在调用您的google。在DOM完全呈现之前加载代码,因此当您点击刷新页面时,Meteor调用google.load
时,jsapi文件未定义
但是,如果您离开然后返回,则DOM已加载一次,因此图表将正确呈现
为了解决这个问题,我建议只保存http://www.google.com/jsapi
在您的客户端文件夹中
因此,Meteor将在调用google.load
代码之前加载它。将google jsapi文件放在main.html头中,将导致浏览器在DOM完全加载后运行Javascript,这对于您来说太晚了
Meteor正在调用您的google。在DOM完全呈现之前加载代码,因此当您点击刷新页面时,Meteor调用google.load
时,jsapi文件未定义
但是,如果您离开然后返回,则DOM已加载一次,因此图表将正确呈现
为了解决这个问题,我建议只保存http://www.google.com/jsapi
在您的客户端文件夹中
因此,Meteor将在调用google.load之前加载它。为什么不使用template renderd函数?路由器应该有after回调,您可以将drawChart()放入其中为什么不使用template renderd函数?路由器应该有after回调,您可以将drawChart()放入其中
google.load("visualization", "1", {'callback':function() {},packages:["corechart"]});
google.setOnLoadCallback(drawChart);
Deps.autorun(function () {
drawChart()
})