我在渲染时遇到问题 @results
来自show.js.erb
。输出如下:
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>
使用_result.html.erb
在show.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>");
输出与 a>
图像上的输出保持相同, li>
等等。
编辑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>"%>);
关于jquery - 从 js.erb 模板渲染部分内容会生成带有 html 标签剩余部分的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6318125/