2011-06-11 187 views
3

我從show.js.erb中渲染@results時遇到問題。輸出看起來像:output from show.js.erb template從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.erbshow.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呈現: enter image description here

編輯3:

<a href="http://jasonseifer.com/2010/04/06/rake-tutorial">Rake Tutorial | Jason Seifera&gt;<br> <span class="urls">http://jasonseifer.com/2010/04/06/rake-tutorialspan&gt;li&gt;</span></a> 

編輯4:

html_safe

$('#results').empty(); 
$('#results').html('<ul><%= escape_javascript render(@results) %></ul>'); 

輸出:

output without html_safe

</已經由escape_javascript吃掉。

編輯5:它工作!最後!

$('#results').html('<%= escape_javascript("<ul>#{render(@results)}</ul>").html_safe %>'); 

這是Dogbert的答案與.html('')報價和.html_safe

+0

你可以發佈原始的html輸出嗎? Firebug傾向於清理無效標籤。 – Dogbert 2011-06-11 21:45:27

+0

我已經用html輸出更新了問題(編輯3)。 – 2011-06-11 21:58:34

回答

7

請嘗試使用此爲您js.erb

$('#results').html(<%= escape_javascript "<ul>#{render(@results)}</ul>"%>); 
+2

沒有'.html()'的配額,它根本不工作。 – 2011-06-12 03:48:19

+1

非常感謝您的回答!我添加了'.html('')'配額。當我在查看原始html輸出時,我注意到它是正確的!我在最後加了'.html_safe',一切都很好。謝謝! – 2011-06-12 03:55:35

3

兩個想法在這裏:

  1. 缺少一個;後空()

    $('#results').empty(); 
    
  2. 我一直使用短手渲染的問題,但長版本始終工作。

    $('#results').html("<ul><%= escape_javascript(render(:partial => "results/result", :collection => @results)).html_safe %></ul>"); 
    

下一頁嘗試

更改雙引號單引號的.html('')

+0

感謝您的回答。 ';'在那裏,但是我在輸入問題時失去了它。我已經嘗試過長版本,但沒有'_'(它給出缺失的部分錯誤),可悲的輸出是一樣的簡短版本。 – 2011-06-11 20:43:24

+0

我不認爲你已經說過輸出是什麼。你可以嗎?我可能會幫忙。 – natedavisolds 2011-06-11 21:04:37

+0

像在圖像上。鏈接正在工作。但鏈接的標題末尾附有'a>'。在包含uri'span> li>的span中附加。在'show.html.erb'中使用的相同的部分產生正確的結果。 – 2011-06-11 21:12:59