1

Google チャート API からチャートを読み込もうとしています。ほとんどの場合、計画どおりに機能しています。この問題は、最初のページの読み込みで発生します。サイトの別の部分からページに (ルーターを使用して) 移動すると、問題なく読み込まれます。ただし、ページの更新ボタンを押すと、ページを離れて再入力するまでグラフが読み込まれません。

これは私のmain.htmlヘッダーにあります:

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

そして、私の template.templatename.rendered AND template.templatename.created で私は持っています

google.load("visualization", "1", {'callback':function() {},packages:["corechart"]});
google.setOnLoadCallback(drawChart);
Deps.autorun(function () { 
             drawChart()
             })

drawChart() が Google 視覚化コマンドを呼び出す場所。現在、おそらく繰り返しコードを呼び出していることは理解していますが、これはすべて、更新を押したときにページをロードできるようにするためのものです。

助けていただければ幸いです。

さらに必要な情報がある場合はお知らせください。ありがとう。

4

1 に答える 1

1

Google jsapiファイルをmain.htmlヘッダーに配置すると、 DOMが完全にロードされた後にブラウザがJavascriptを実行するようになりますが、これでは目的を達成するには遅すぎます。

Meteorは、 DOMが完全にレンダリングされるgoogle.load前にコードを呼び出しているため、ページを更新すると、 Meteorが を呼び出したときにjsapiファイルが未定義になり。google.load

ただし、別の場所に移動してから戻った場合、DOMは既に 1 回読み込まれているため、チャートは正しくレンダリングされます。

これを解決するには、ローカル バージョンのhttp://www.google.com/jsapiをクライアント フォルダに保存することをお勧めします。

したがって、Meteor はコードを呼び出す前にそれをロードしgoogle.loadます。

于 2013-12-19T22:43:30.710 に答える