2012-06-26 62 views
0

我有這個JS高圖,我試圖傳入一些值,在我的pages_controller計算。我已經嘗試過使用全局變量和實例變量,而且在渲染過程中似乎都不起作用。我估計值沒有傳入將值從一個Ruby on Rails控制器傳遞到Javascript來呈現

在我pages_controller我:

> @nil_ref = (@counts[nil]/total.to_f)*10 
> @email_ref = (@counts["email"]/total.to_f)*10 
> @cpc_ref = (@counts["cpc"]/total.to_f)*10 
> @display_ref = (@counts["display"]/total.to_f)*10 

然後在我的/public/highcharts.js文件我有:

var chart1; // globally available 
    $(document).ready(function() { 
     var chart = new Highcharts.Chart({ 
      chart: { 
       renderTo: 'container', 
       type: 'pie' 
      }, 
      xAxis: { 
       categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'] 
      }, 
      yAxis: { 
      }, 
      legend: { 
       layout: 'vertical', 
       floating: true, 
       backgroundColor: '#eeeeee', 
       align: 'right', 
       verticalAlign: 'top', 
       y: 60, 
       x: -60 
      }, 
      tooltip: { 
       formatter: function() { 
        return '<b>'+ this.series.name +'</b><br/>'+ 
         this.x +': '+ this.y; 
       } 
      }, 
      plotOptions: { 
      }, 
      series: [{ 
       data: [<%= @nil_ref %>, <%= @email_ref %>, <%= @cpc_ref %>, <%= @display_ref %>] //These need to be global vars   
      }] 
     }); 
    }); 

當我檢查Chrome中的元素,我得到Uncaught SyntaxError: Unexpected token與JS中的Ruby標籤一致。

任何想法如何成功地傳遞這些值?

回答

1

如果回報率數據,你需要做的,像這樣的字符串:

data: ["<%= @nil_ref %>", "<%= @email_ref %>", ... 
+0

的數據都是Fixnums –

+0

請問是怎麼回事?相同的語法?圖形周圍的資源正在加載,而不是實際的餅圖本身。 –

+0

我不知道有關HeighCharts,但您需要先檢查它是否適用於添加手動數據,接下來您需要檢查RoR的生成過程,查看源代碼並檢查該行以查看數據數組的樣子。 (你甚至可以使用pastebin向我們展示源代碼)以及finaly是否其中一個數組元素不是數字,它是一個你需要添加「」的字符串 – cuzzea

相關問題