簡體   English   中英

調用.js.erb文件而不是.html.erb文件

[英]call .js.erb file instead of .html.erb

我有帶有Google地圖的Rails應用程序。 我想使用.js.erb文件用標記填充它,以便可以訪問javascript中的ruby變量。 我不想用gon gem。

有沒有辦法讓操作調用.js.erb文件而不是.html.erb文件?

解決此問題的一種方法是加載.html.erb,然后必須執行自動ajax調用以加載.js.erb,但我正在尋找更好的解決方案。

謝謝。

控制器確實不是正確的方法,因為它的工作是響應請求。 如果有請求進入並希望重新獲得HTML,Rails將會重新提供HTML。 如果是JS請求,則會將JS發送回去。

正確的方法是使用HTML加載頁面,然后從頁面進行AJAX調用。 您甚至可以將其發送到相同的操作,Rails將使用適當的js.erb模板進行響應。 如果要為其提供特殊說明,或者如果您想以特定方式呈現JSON,則可以使用respond_to或JBuilder gem來實現。

編輯:以上內容是在您通過普通HTML請求加載頁面並且希望它同時執行HTML和JS的前提下編寫的。 如果您已經在頁面上並且想要通過鏈接,按鈕或表單進行AJAX調用而根本不呈現HTML,則可以通過在所有form_forform_tagbutton_tolink_to標記中添加remote: true來實現。

如果您希望避免再次調用,並且不希望控制器需要使用JSON進行響應,則可以在視圖中將要查找的數據放入HTML5數據屬性中。 這些是專門為向JS提供信息而存在的。 您只需將其值設置為包含標記的數組來執行一項操作,然后讓腳本在該數組的每個元素中運行。

暫無
暫無

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

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