一个用于生成图表的gem: lazy_high_charts

具体使用参考:

https://github.com/michelson/lazy_high_charts


但是它不提供ajax加载的图标方式

因为生成的js代码,实在 window.onload方法中运行的

怎么办?

增加新的ajax 代码

# -*- encoding: utf-8 -*- 

module LazyHighCharts
  module LayoutHelper
    def high_chart_ajax(placeholder, object, &block)
      object.html_options.merge!({:id=>placeholder})
      object.options[:chart][:renderTo] = placeholder
      high_graph_ajax(placeholder,object , &block).concat(content_tag("div","", object.html_options))
    end

    def high_graph_ajax(placeholder, object, &block)
      build_ajax_html_output("Chart", placeholder, object, &block)
    end

    def build_ajax_html_output(type, placeholder, object, &block)
      options_collection = [ generate_json_from_hash(object.options) ]

      options_collection << %|"series": #{object.data.to_json}|

      graph =<<-EOJS
        <script type="text/javascript">
        var options, chart;
        options = { #{options_collection.join(',')} };
        #{capture(&block) if block_given?}
        chart = new Highcharts.#{type}(options);
        </script>
      EOJS

      if defined?(raw)
        return raw(graph)
      else
        return graph
      end
    end

  end
end

调用方法
<%=high_chart_ajax("dom_name", @highcharts)  %>



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值