【问题标题】:Generic rendering of Chartkick graphs in railsRails 中 Chartkick 图形的通用渲染
【发布时间】:2016-10-25 07:29:10
【问题描述】:

在我的应用程序中,我有一个包含多个 Chartkick/Highcharts 图表的页面。为了防止需要太多图表,我想让它们响应输入并在之后更改内容。我所做的是设置一个表单选择字段,我希望柱形图根据在该字段中选择的记录而改变。我正在使用 jQuery 来执行此操作。

现在我的问题。在我的 js 文件中,我无法连接/插入要呈现的 html 字符串。有谁知道这样做的好方法吗?

我尝试使用传统的串联,但由于我在字符串中转义了 javascript,所以它不起作用。如果我对用户 ID 进行硬编码,则所有内容都会按照该用户的预期更新,那么问题就在这里。

这是我迄今为止在我的 js 中的内容:

chart_render.js

var user_id;
user_id = $('#user-select').val();
if (user_id !== "") {
  $('#chart').html("<%= j render 'chart_render', locals: {user_id: --->This is where I need to place the user id<--- } %>");
} else {
  $('#chart').html("<%= j render 'chart_render', locals: {user_id: nil} %>");
}

任何提示将不胜感激!

编辑:

我最终采用了不同的方式,直接使用 Highcharts 而不是通过 Chartkick 并通过数据标签传递所选用户。

【问题讨论】:

标签: javascript jquery ruby-on-rails highcharts


【解决方案1】:

您可以使用"++" 连接您的 id,看看我是怎么做的。

var user_id;
user_id = $('#user-select').val();
if (user_id !== "") {
    $('#chart').html("<%= j render 'chart_render', locals: {user_id:" + user_id + "} %>");
} else {
    $('#chart').html("<%= j render 'chart_render', locals: {user_id: nil} %>");
}

【讨论】:

  • 我已经尝试过了,但是因为 'escape_javascript' 的缩写 'j' 就是这样做的(转义 javascript),所以我无法访问字符串中的变量,因为它被视为rails 代码而不是 js。因此,当我这样做时,rails 会尝试查找具有 id 的用户:" + user_id + "
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多