2013-04-11 64 views
2

我使用的JavaScript API在我的Rails應用程序,並已包括像這樣在application.html.erb文件谷歌的可視化:如何在rails應用程序中導入javascript?

<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片段並連接到網絡時,它可以正常工作。

+0

任何異常,當東西不工作? – ted 2013-04-11 22:43:25

+0

@不,沒有得到任何我知道的例外。它只是圖表應該顯示的區域沒有出現。 – sharataka 2013-04-11 23:09:55

回答

0

如果你看一下Google的jsapi.js的頂部,它會引用其他外部JS文件。這些都是在整個JS文件中使用的變量。

google.loader.ServiceBase = 'https://www.google.com/uds'; 
google.loader.GoogleApisBase = 'https://ajax.googleapis.com/ajax';