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 问题中看到了这个解决方案,它对我有用。

于 2013-02-18T00:08:04.723 回答