我想製作一個通用控制器,可以在頁面加載後(使用AJAX)調用,並根據控制器調用它來更新頁面上的不同內容。不能在coffeescript中渲染coffeescript部分
其目的是允許更好的頁面和片段緩存,同時顯示用戶的自定義元素。
我的框架是這樣的:
controllers/general_ajax_controller.rb
views/general_ajax/on_page_load.js.coffee
./_update_some_stuff.js.coffee
控制器中的on_page_load
動作處理找出哪些泛音加載和視圖將使泛音的邏輯。
在on_page_load.js.coffee
視圖我有此代碼(簡化):
<%= render "update_some_stuff" %>
應該使局部的。相反,我得到這個錯誤:
ActionView::Template::Error (SyntaxError: Reserved word "function" on line 2):
app/views/general_ajax/on_page_load.js.coffee:1:in `_app_views_general_ajax_on_page_load_js_coffee___2304196970850216490_70321203283120'
我認爲CoffeeScript的是,包括它在視圖(這是咖啡,不支持編譯JS),如果我改變on_page_load
觀點的延伸
之前編譯到.js.erb
然後它工作。 (奇怪的是,我必須重新啓動我的服務器之前,它的工作原理,你知道爲什麼嗎?)
你認爲這是一個問題在咖啡標記或是不好的做法,因此不支持?
作爲一個側面討論,您如何看待我的動態腳本方法?
是的我同意,這是什麼原因造成的問題。但是,你推薦什麼,而不是渲染「update_some_stuff」'?如何正確使用coffeeScript partials? – Cristian
我不知道。我還沒有需要這個。我已使用respond_to呈現JavaScript。也許從那裏你可以根據一些條件渲染一個文件或另一個文件,並使用Rails partials。 –
我的想法是將這些文件分開,這樣每個文件都有自己的功能,並且可以單獨加載它們,具體取決於它們是否需要(某種延遲加載)。有時需要一次加載更多文件,因此渲染調用在此不起作用。 – Cristian