我在show.js.erb中渲染@results时遇到问题.输出如下:
show.js.erb
$('#results').empty(); $('#results').html("<ul><%= escape_javascript(render(@results)).html_safe %></ul>");
_result.html.erb
<li> <%= link_to(result.title,result.uri) %><br> <span class="urls"><%= result.uri %></span> </li>
在show.html.erb中使用_result.html.erb:
<ul> <%= render @results %> </ul>
产生正确的输出.
可疑的罪魁祸首是<%= escape_javascript(render(@results)).html_safe%>.
我试过<%= raw(escape_javascript(render @ results))%>但没有运气.
应用程序是使用Rails 3.0.8创建的.
编辑1:
更长版本的show.js.erb:
$('#results').empty(); $('#results').html("<ul><%= escape_javascript(render(:partial => "results/result",:collection => @results)).html_safe %></ul>");
编辑2:
由show.js.erb呈现的HTML:
编辑3:
<a href="http://jasonseifer.com/2010/04/06/rake-tutorial">Rake Tutorial | Jason Seifera><br> <span class="urls">http://jasonseifer.com/2010/04/06/rake-tutorialspan>li></span></a>
编辑4:
没有html_safe:
$('#results').empty(); $('#results').html('<ul><%= escape_javascript render(@results) %></ul>');
输出:
< /已经被escape_javascript吃掉了. 编辑5:它正在工作!最后!
$('#results').html('<%= escape_javascript("<ul>#{render(@results)}</ul>").html_safe %>');
这是Dogbert用.html(”)引号和.html_safe的答案.
解决方法
请尝试将此用于js.erb
$('#results').html(<%= escape_javascript "<ul>#{render(@results)}</ul>"%>);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。