簡體   English   中英

在Ruby on Rails的haml視圖中將ruby數組傳遞給javascript代碼(jquery)

[英]passing ruby arrays to javascript code (jquery) in a haml view in Ruby on Rails

我正在使用jQuery / javascript在haml模板上顯示Highcharts圖。 這是一個片段,顯示HighCharts網站中演示代碼的獨立圖:

:javascript

  $(document).ready(function() {
    $("#tabs").tabs();
    new Highcharts.Chart({
      chart: {
        renderTo: 'volume_chart'
      },
      title: {
        text: 'Logarithmic axis demo'
      },
      xAxis: {
        tickInterval: 1
      },
      yAxis: {
        type: 'logarithmic',
        minorTickInterval: 0.1
      },
      tooltip: {
        headerFormat: '<b>{series.name}</b><br />',
        pointFormat: 'x = {point.x}, y = {point.y}'
      },
      series: [{            
        data: [1, 2, 4, 8, 16, 32, 64, 128, 256, 512],
        pointStart: 1
      }]
    });
  });

這很好用。 現在我試圖在show.html.haml文件中設置ruby / rails數組中的系列數據,如下所示:

...
- data_array        = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512]
...
:javascript

  $(document).ready(function() {
  ...
      series: [{            
        data: "#{data_array}",
        pointStart: 1
      }]
    });
  }); 

這給了我以下錯誤:

undefined method `to_js' for [1, 2, 4, 8, 16, 32, 64, 128, 256, 512]:Array

如何將我的ruby / rails代碼中的data_array傳遞給javascript / jquery代碼?

感謝任何幫助。

謝謝。

巴拉特

require 'json'

...

"#{data_array.to_json}"

嘿,在HAML中沒有必要使用to_json

   :javascript
     $(document).ready(function() {
       ...
       series: [{            
         data: #{ruby_array},
         pointStart: 1
       }]
     });
    }); 

會完美的工作

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM