2012-02-02 24 views
0

任務是相當簡單部分:渲染的OnChange AJAX功能部分模板。 執行了js.erb並執行了渲染後,我的頁面上的HTML標記被破壞,新渲染的所有元素都被渲染。 在這個例子中它增加了「一>」的鏈接名稱,所以DOM包含「新品牌A>」滑軌3.2 +的jQuery +呈現js.erb =破碎HTML元素

#partial 
<%= link_to 'New Brand', new_brand_path %> 

#controller------------------------- 
... 
format.js 

#parent view------------------------ 
<div id="partial-id"> 
    <%= render 'partial' %> 
</div> 

#action_script.js.rjs--------------- 
$("#partial-id").html("<%= escape_javascript(render ('partial')).html_safe %>"); 

建議將高度讚賞,我已經花了幾個小時試圖找出解決方案。

+0

是您的JS模板的ERB或RJS一個(你提到的「與渲染js.erb執行......之後」,但'代碼塊action_script.js.rjs')? – Jef 2012-02-02 09:51:02

回答

0

對於我們WODstack我們這個使用了很多,但我們從來沒有使用.html_safe。

只是刪除您html_safe,你應該罰款。

+0

謝謝,但我試過了。如果我刪除.html_safe,那麼我不僅看到「New Branda」,而且看到整個標籤作爲文本的來源。 – 2012-02-02 09:02:39

+0

在這種情況下,你的部分HTML是錯誤的地方。 – mhenrixon 2012-02-02 10:51:47

+0

這是我的部分內容: <%= link_to'新品牌',new_brand_path%> – 2012-02-02 11:48:44

2

一旦我從原型轉換爲jQuery,問題就解決了。所以* action_script.js.erb *效果很好,在這種情況下不需要.html_safe