【问题标题】:How to pass javascript variables to a partial as locals ? Rails 4 + Haml如何将 javascript 变量作为局部变量传递给局部变量? Rails 4 + 哈姆尔
【发布时间】:2014-02-03 01:35:42
【问题描述】:

我有一个代表用户列表的部分,我想让它为每个选定的用户发送不同的本地,以便用隐藏的输入来刷新视图的一部分,该输入采用本地的值。 我的部分用户中有这个:

  %li
    %a{ :href => "#", :onclick => "test("+user.id.to_s+","+id_current_user+");return false"}

这是我正在调用的函数:

:javascript
   function test(with_user, current_user) {
   $("#messages-list").html('');
   $("#message-new").append("#{escape_javascript(render( partial:'messages/form',:locals => {:recipient_id => "with_user" } ))}");
   };

这个想法是在局部的本地发送“with_user”javascript 值,但我尝试了一切以使其工作。没门 !有人可以帮我解决这个问题吗?

【问题讨论】:

  • 我不确定,但我认为您的 js 在到达客户端之前不会运行。此时您是否可以访问存储在服务器上的部分文件?
  • 不,我用字符串“with_user”作为recipient_id 的值得到了好的部分。我想使用名为的javascript函数的参数使其动态化

标签: javascript ruby-on-rails haml partial locals


【解决方案1】:

这个$("#message-new").append("#{escape_javascript(render( partial:'messages/form',:locals => {:recipient_id => "with_user" } ))}"); 在浏览器中不起作用因为它不知道如何执行 ruby​​ 代码

我认为您可能需要先回过头来弄清楚为什么需要这样渲染。

编辑

这让解析器感到沮丧。服务器只向浏览器发送标记一次,因此一旦运行,它就不会知道客户端上的任何动态 javascript 变量。我认为必须有更好的方法来使用 AJAX。

【讨论】:

  • 有什么方法可以让 ruby​​ 代码理解“with _user” javascript 值?我需要这个,因为我用相应的变量刷新了 html 的一部分。
  • 注意:浏览器理解这里的 ruby​​ 代码并且它可以工作,问题是,我没有找到让 ruby​​ 代码理解本地 javascript 值的解决方案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-12-07
  • 1970-01-01
  • 2018-09-02
  • 2011-09-10
  • 1970-01-01
  • 2011-05-23
  • 2012-06-21
相关资源
最近更新 更多