簡體   English   中英

用js替換部分

[英]replacing a partial with js in it

我有一個rhtml部分“mypartial”,它包含一個像這樣的js塊:

<script type="text/javascript">new Ajax.Updater([...]);</script>

在rjs模板中,我稱

page.replace "container", :partial => "mypartial"

替換工作正常,除了腳本塊。 此塊及其javascript不會寫入html(我使用firefox / web開發工具欄檢查->顯示生成的源代碼)。

我是否真的必須通過頁面<<“myjs()”在我的rjs模板中編寫js部分;

我感到奇怪的是,您的page.replace將省略腳本標簽...如果您使用javascript_tag幫助程序,該怎么辦? 是否也忽略了這一點?

另一種選擇是將JavaScript放在從布局中加載的一個JavaScript文件中。 然后您不必擔心刪除和更換它。 當然,除非你插入Ruby變量。

如果你在JavaScript中使用Ruby變量,那么可能代替RJS你的AJAX調用應該渲染一個js.erb模板,該模板拋出JavaScript然后呈現部分。

部分將在腳本塊完整的情況下呈現,但是,如果我沒記錯的話,Prototype會在將HTML插入DOM之前將其刪除,以便稍后eval它們。 這就是為什么它沒有出現在DOM檢查器中。 您可以通過在生成的腳本中包含alert("HELLO FROM RJS")來測試它 - 它應該顯示警報。

這是我自己的錯,但是我會把它寫在這里給任何可能遇到同樣問題的人。

將對js代碼進行評估,但是:它不適用於document.observe('dom:loaded'),因為當您加載頁面時將觸發此事件,而不是在更新部分時觸發。 面對自己

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM