ReferenceError:未定义HighCharts

时间:2014-05-06 23:10:39

标签: javascript ruby-on-rails highcharts highstock

我在index.html.erb文件中使用我的rails应用程序上的highstocks渲染图表,但是当我尝试加载图表时,我在firebug控制台上收到以下错误,

ReferenceError: HighCharts is not defined
new HighCharts.Chart({

我的index.html.erb文件如下

<div id="quotes_chart", style="width=560px; height:300px;">
<script>
 $(function(){   
 new HighCharts.Chart({
  chart : {
   renderTo: "quotes_chart"
  },
  title : {
   text: "Daily trades" 
  },
  xAxis : {
    type: "datetime"
  },
  yAxis : {
    title: {
     text: "Shillings"
   }
  },
  tooltip : {
    formatter: function(){
      return HighCharts.dateFormat("%B %e, %Y", this.x) + ': ' + "Kshs" + Highcharts.numberFormat(this.y, 2);
    }
  },
  series: [
    <% { "Telecommunication" => StockQuote.telecomm, "Agriculture" => StockQuote.agric }.each do |name, prices|
%>
{
  name: <%= name %>,
  pointInterval: <%= 1.day * 1000 %>,
  pointStart: <%= 2.weeks.ago.to_i * 1000 %>,
  data: <%= (2.weeks.ago.to_date..Date.today).map { |date| StockQuote.price_on(date).to_f}.inspect%>
},
<% end %>
]
});
});
</script>
</div>

在我的application.html.erb中如下:

 <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
 <script src="components/highstock/highstock.js"></script>
 <%= javascript_include_tag "jquery-1.11.0.min", "highcharts" %>

在我的app assests / javascripts文件夹中,我有从highcharts.com下载的jquery-1.11.0.min.js和highcharts.js文件

我可能做错了什么?

2 个答案:

答案 0 :(得分:3)

var chart=null;
$(document).ready(function() {
    chart = new Highcharts.Chart({
                    chart: {
                        renderTo: 'container',
                        type: 'bar'
                    },
                    title: {
                        text: '${model.title}'
                    }
...                        

将图表设置为null,因为可能由于您可能不知道的多个声明而发生此错误。假设所有进口都是正确的

答案 1 :(得分:2)

您只需要加载一次Highcharts,而不是两次。所以,我建议只使用:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script src="components/highstock/highstock.js"></script>

因为Highstock包含所有Highcharts选项。更重要的是,请注意文件的正确路径,因为它看起来只是一个问题。