Ruby on Rails:在 <%= %> 中使用 javascript 变量Html.erb 中的标签
我正在尝试在 <%= %> 中插入一个 Javascript 变量标签,但它会详细打印变量名称。这是我的代码
<script>
function getGraph(agency,device_id)
{
var i = document.createElement('img');
i.src = '<%= show_graph_hcfcd_url('device_id') %>';
$(graphDiv).appendChild(i);
}
</script>
现在的问题是 URL 生成得很好,除了在其余 url 中出现的是“device_id”而不是 device_id 的值。
有什么线索如何克服这个问题吗?
I am trying to use insert an Javascript variable in the <%= %> tags but it prints the variable name verbose. Here is my code
<script>
function getGraph(agency,device_id)
{
var i = document.createElement('img');
i.src = '<%= show_graph_hcfcd_url('device_id') %>';
$(graphDiv).appendChild(i);
}
</script>
Now the Problem is URL gets generated just fine except instead of value of device_id, 'device_id' appears in the rest url.
Any clues how to get over this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
<%= %>
将在服务器上解释代码,并且 javascript 变量可在客户端上更改。所以这样做
可能不是正确的方法。
您可能想尝试将 url 放入元素的数据属性中:
另请参阅
http://railscasts.com/episodes/324-passing-data-to-javascript
有一个很好的 gem 可以做到这一点,称为“gon”
<%= %>
will interpret the code on the serverand javascript variable is available to change on the client. So doing
is probably not be the correct way of doing this.
You might want to try to put the url(s) in the data attibute of the element:
also see
http://railscasts.com/episodes/324-passing-data-to-javascript
There's a good gem to do this called "gon"
以下是我目前解决此问题的方法:
粗体部分显示了我所做的事情。基本上用它的值替换了 url 中的“device_id”。
但我仍然希望有一个更优雅的解决方案。
Here is how i have solved this for now:
The lines in the bold show what i did. Basically replaced the "device_id" in the url with its value.
But I am still hoping for a more elegant solution.