我正在尝试将字符串值分配给我的.erb文件中的javascript对象,如下所示:
var data = {
'name': '<%= @product.name %>',
...
};
问题是,如果name
的值为Tom's small ears
,
data.name
的输出为Tom's small ears
。
有没有办法逃避特殊字符?
我尝试'name': '<%= raw @product.name %>'
,但Uncaught SyntaxError: Unexpected identifier
输出到控制台。
执行<%= escape_javascript @product.name %>
输出Tom\'s small ears
修改
@ Stefan在MrYoshiji's
回答下的评论对我有用。
答案 0 :(得分:32)
您可以使用escape_javascript()
来完成此任务:
var data = {
'name': "<%== escape_javascript @product.name %>",
#...
};
此方法的别名为j
:
var data = {
'name': "<%== j @product.name %>"
}
答案 1 :(得分:0)
var data = {
'name': '<%=j @product.name.html_safe %>',
...
};