如何写js.erb

来源:互联网 发布:python 遍历数组 编辑:程序博客网 时间:2024/05/16 18:15

昨天学习rails的ajax操作时遇到的一个问题,

页面将from_tag的route选项设为true,代表向rails控制器方法发送的是js格式的ajax异步请求,

控制方法处理完成后渲染同名的js.erb模板,

但是模板里的js代码就是不起作用,

今天早上头脑清醒时调了一会儿,

看到rails中文指南里写到这样一行代码:$("<%=escape_javascript(render@user)%>").appendTo("#users");

我找葫芦画瓢改写了自己的js.erb代码:

$("#cart").html("<%= escape_javascript(render(:partial => "cart", :object => @cart)) %>");

然后重试就可以了,关键是要在渲染子模板render之前加escape_javascript.

在rails的api上查了一下这个方法的说明(下附),意思是为javascript片段去掉字符串中的回车符,单引号,双引号。可以简写为j()。这个方法专门用于返回javascript响应时。


escape_javascript(javascript)Link

Escapes carriage returns and single and double quotes for JavaScript segments.

Also available through the alias j(). This is particularly helpful in JavaScript responses, like:

$('some_element').replaceWith('<%=j render 'some/element_template' %>');
Also aliased as: j
j(javascript)Link
Alias for: escape_javascript

0 0
原创粉丝点击