如何将javascript变量传递给部分本地人? Rails 4 + Haml

时间:2014-02-03 01:35:42

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

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

  %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值,但我尝试了一切使其工作。没门 !有人帮我这个吗?

1 个答案:

答案 0 :(得分:0)

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

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

修改

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