2

我在我的 rails 应用程序中使用了谷歌可视化 javascript api,并将其包含在 application.html.erb 文件中:

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

为了使脚本和以下代码正常工作,我需要连接到互联网。我取而代之的是,将上述 url 的内容放在我的 rails 应用程序的 assets>javascripts 文件夹中,并将其命名为 jsapi.js。然后我在 application.html.erb 文件中包含以下内容:

<%= javascript_include_tag "jsapi" %>

当我在断开连接到互联网时运行我的应用程序时,我能够看到上述文件的内容,因为这是生成的:

<script src="/assets/jsapi.js?body=1" type="text/javascript"></script>

但是,我尝试制作的实际图表不起作用。关于为什么会这样的任何建议?我的 index.html.erb (实际使用库)中的 javascript 的完整代码如下:

<script type="text/javascript">
      google.load("visualization", "1", {packages:["corechart"]});
      google.setOnLoadCallback(drawChart);
      function drawChart() {
        var options = {
          title: 'Most common phrases in pro-Microsoft Reviews (<%= @reviews.count %> reviews analyzed)',
          vAxis: {title: 'Phrases',  titleTextStyle: {color: 'red'}},
          animation:{
            duration: 2000,
            easing: 'out',}
        };

        var data = google.visualization.arrayToDataTable([
          ['Phrase', 'Frequency'],
            <% @frequency.each do |key,value| %>
                ['<%= key %>', <%= value %>],
            <% end %>
        ]);

        var chart = new google.visualization.BarChart(document.getElementById('chart_div'));
        chart.draw(data, options);

        google.load("visualization", "1", {packages:["corechart"]});
        google.setOnLoadCallback(drawChart);
      }
    </script>

我有一种感觉,这与上面的代码有关。当我删除我包含的第一个 javascript 片段并连接到网络时,它可以工作。

4

1 回答 1

0

如果您查看来自 Google 的 jsapi.js 的顶部,它似乎正在引用其他外部 JS 文件。这些是在整个 JS 文件中使用的变量。

google.loader.ServiceBase = 'https://www.google.com/uds';
google.loader.GoogleApisBase = 'https://ajax.googleapis.com/ajax';
于 2013-04-12T05:43:46.820 回答