2

我是 Javascript 新手。我正在用 haml 编写一个视图,该视图使用 JQuery 填充下拉框并填充该框 JQuery 需要 Ruby 变量的值,s_id如下所示:

$(document).ready(function(){
  var param = s_id  //here s_id is a ruby variable
  ...

s_id是在调用 JS 的 Haml 视图文件中定义的 ruby​​ 变量。谁能给出任何想法如何实现上述目标。

4

2 回答 2

2

我认为没有办法直接访问变量。如果 JS 代码在同一页面上,您只需使用<%= s_id %>. 我没有太多使用 HAML,所以你必须从这个 ERB 代码中调整它。

另一种解决方案,因为您在 document.ready 之后执行此操作是将值存储在隐藏字段中,然后从 JS 中选择它$('#your_sid_field').val()

于 2013-09-13T07:56:57.593 回答
0

您需要将其移动为部分。将其设置在一个名为类似的文件中app/views/whatever/_some_script.js.erb,然后像这样引用它:

render partial: 'whatever/some_script', locals: { s_id: s_id }

在 javascript 文件中,您将执行以下操作:

$(document).ready(function(){
  var param = <%= s_id %>;
  ...

确保它是一个字符串,你在它周围加上引号。应该是这样的。

于 2013-09-13T08:00:16.267 回答