1

Rails 3.2 アプリケーションで Google Visualization ライブラリを使用しようとしています。私のapplication.html.erbには次のものがあります

<head>
 <title>Website</title>
 <%= stylesheet_link_tag    "application", media: "all" %>
 <%= javascript_include_tag "application" %>
 <script src="http://www.google.com/jsapi" type="text/javascript"></script>
 <%= csrf_meta_tags %>
</head>

私のstuff.js.coffeeには次のものがあります:

google.load('visualization', '1', packages: ['gauge'])
google.setOnLoadCallback(drawChart)
drawChart ->
  data = google.visualization.arrayToDataTable([
    ['Label', 'Value'],
    ['Memory', 80],
    ['CPU', 55],
    ['Network', 68]
  ])
  options = {
    width: 400, height: 120,
    redFrom: 90, redTo: 100,
    yellowFrom:75, yellowTo: 90,
    minorTicks: 5
  }
  chart = new google.visualization.Gauge(document.getElementById('result'))
  chart.draw(data, options)

ページの読み込み時に js エラーが発生します: Uncaught ReferenceError: google is not defined

チャートのセットアップ/作成 js を application.hmtl.erb に移動すると、すべて機能します。ここでは、何かが明らかに正しい順序でロードされていません。

4

1 に答える 1

1

application.jsの前にGoogle の jsapi ファイルをインクルードしてみてください

<head>
 <title>Website</title>
 <%= stylesheet_link_tag    "application", media: "all" %>
 <script src="http://www.google.com/jsapi" type="text/javascript"></script>
 <%= javascript_include_tag "application" %>
 <%= csrf_meta_tags %>
</head>

この github issueでこの解決策を見ましたが、うまくいきました。

于 2013-02-18T00:08:04.723 に答える