您的位置:首页 > Web前端 > JavaScript

如何写js.erb

2015-09-04 10:15 597 查看
昨天学习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

Source: show | on
GitHub

j(javascript)Link

Alias for: escape_javascript

aee1
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: