将.coffee文件中的chart.js函数从partial移动到assets文件夹

时间:2016-06-09 12:12:47

标签: javascript ruby-on-rails coffeescript chart.js

我在主页面中有文本块,它位于 _about.html.haml 部分。当我点击链接时,文字通过AJAX替换雷达图表(我使用'chart-js-rails'gem)。现在js函数位于 _my-chart.html.haml partial(取代第一个)&我认为这还不够好。

所以问题是:如何将此功能代码移动到.coffee文件中的资产文件夹或类似的东西?

P.S。我已经尝试将其移至'chart.js'文件&使用= javascript_include_tag 'chart.js'但它不起作用图表不会渲染&我有空的画布元素。

视图/欢迎/ _about.html.haml

%div{id: 'about'}
  %h2 About

  %p Some text

  = link_to 'View chart', welcome_chart_path, remote: true

视图/欢迎/ chart.js.haml

$('#about').replaceWith('#{j render(partial: 'welcome/my-chart')}');

视图/欢迎/ _My-chart.html.haml

%div
  %h2 Chart

  %canvas{id: 'my-chart', width: '400', height: '400'}

:javascript
  $(function() {

    var ctx = $('#my-chart');
    var data = {
      labels: [a, b, c],
      datasets: [
        {data: [1, 2, 3]}
      ]
    };

    var my_chart = new Chart(ctx, {
     type: 'radar',
     data: data
   })
 });

控制器/ welcome_controller.rb

class WelcomeController < ApplicationController

  respond_to :js, only: [:chart]

  ...

  def chart; end

end

0 个答案:

没有答案