在我的应用程序中,我有一个包含多个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以及通过数据标记传递所选用户来实现不同的方式。
答案 0 :(得分:0)
您可以使用"++"
连接您的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} %>");
}