我在主页面中有文本块,它位于 _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