我在rails 4 app中使用chartkick
。我目前运行此代码:
<%= bar_chart groupArticles(metric, limit) %>
(groupArticles()
是将数组放入chartkick的自定义方法。例如,<%= bar_chart groupArticles("views", 5)%>
按views
指标为我提供前五篇文章。
现在的问题是:我希望有一个小形式,用户可以选择不同的指标或限制传入(即将其更改为前3或从views
到{{1}或者w / e)。
我想重新加载图表(我有URL params来获取页面上的其他内容,所以我不能使用新的url params来实现这一点(我认为?)。
背后的原因是我有一个表格,我使用url params在同一页面上对它进行排序。如果用户更改图表,我不希望用户放弃当前的排序。
这可能吗?我该如何构建该表单?
答案 0 :(得分:0)
目前尚未实施此功能(请参阅https://github.com/ankane/chartkick/issues/74)。
要在图表中显示新数据,我会重新加载页面。它允许使用新数据重新初始化图表。
答案 1 :(得分:0)
从Dec 4, 2016开始,您可以结合使用JQuery表单提交和Chartkick的内置功能来刷新图表而无需重新加载页面。首先,point your chart at a custom endpoint:
<%= bar_chart charts_group_articles_path %>
其中charts_group_articles_path
类似于
class ChartsController < ApplicationController
def group_articles_chart
groupArticles(params[:metric], params[:limit])
end
end
然后,在app/assets/javascripts/
中,创建一个小文件:
$(document).ready(function() {
$('form').submit(function(e) {
e.preventDefault();
data = $(this).serialize();
Chartkick.eachChart( function(chart) {
chart.updateData(chart.getDataSource() + '?' + data);
});
return false;
});
});
希望这对未来的探险家有所帮助!