从js.erb模板中渲染部分内容时会生成带有html标签残余部分的内容
我从show.js.erb
中渲染@results
时遇到问题。输出看起来像:从js.erb模板中渲染部分内容时会生成带有html标签残余部分的内容
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([email protected])) %>
但没有运气。 应用程序使用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:
HTML由show.js.erb
呈现:
编辑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>"%>);
没有'.html()'的配额,它根本不工作。 – 2011-06-12 03:48:19
非常感谢您的回答!我添加了'.html('')'配额。当我在查看原始html输出时,我注意到它是正确的!我在最后加了'.html_safe',一切都很好。谢谢! – 2011-06-12 03:55:35
两个想法在这里:
-
缺少一个;后空()
$('#results').empty();
-
我一直使用短手渲染的问题,但长版本始终工作。
$('#results').html("<ul><%= escape_javascript(render(:partial => "results/result", :collection => @results)).html_safe %></ul>");
下一页尝试
更改双引号单引号的.html('')
感谢您的回答。 ';'在那里,但是我在输入问题时失去了它。我已经尝试过长版本,但没有'_'(它给出缺失的部分错误),可悲的输出是一样的简短版本。 – 2011-06-11 20:43:24
我不认为你已经说过输出是什么。你可以吗?我可能会帮忙。 – natedavisolds 2011-06-11 21:04:37
像在图像上。链接正在工作。但链接的标题末尾附有'a>'。在包含uri'span> li>的span中附加。在'show.html.erb'中使用的相同的部分产生正确的结果。 – 2011-06-11 21:12:59
https://github.com/rails/rails/issues/1553 试试这个与Rails 3.0.7?
是的,就是这样。 ''缺失。 Dogbert为此解决了问题。 – 2011-06-12 03:59:12
你可以发布原始的html输出吗? Firebug倾向于清理无效标签。 – Dogbert 2011-06-11 21:45:27
我已经用html输出更新了问题(编辑3)。 – 2011-06-11 21:58:34