2

我正在使用chartkickrails 4 应用程序。我目前运行此代码:

<%= bar_chart groupArticles(metric, limit) %>groupArticles()是一种将数组放入chartkick的自定义方法。例如<%= bar_chart groupArticles("views", 5)%>,按指标给我排名前五的文章views

现在的问题是:我想要一个小表格,用户可以在其中选择要传入的不同指标或限制(即,将其更改为前 3 名或 from viewstodate或 w/e)。

然后我想重新加载图表(我有 URL 参数来获取页面上的其他内容,所以我不能使用新的 url 参数来实现这一点(我认为?)。

这背后的原因是我有一个表格,我使用 url 参数在同一页面上对其进行排序。如果用户更改图表,我不希望用户放弃当前的排序。

这可能吗?我如何构建该表单?

4

2 回答 2

0

目前此功能尚未实现(请参阅https://github.com/ankane/chartkick/issues/74)。

为了在图表中显示新数据,我重新加载了页面。它允许使用新数据重新初始化图表。

于 2015-04-04T19:33:32.170 回答
0

2016 年 12 月 4 日起,您可以结合使用 JQuery 表单提交和 Chartkick 的内置功能来刷新图表而无需重新加载页面。首先,将您的图表指向自定义端点

<%= 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;
  });
});

希望对以后的探索者有所帮助!

于 2017-06-26T02:35:59.573 回答