我是一名試圖學習Backbone的rails開發人員,然後我遇到了這個問題:由於Underscore
模板包含像<%=%>
這樣的符號,我猜模板不能包含在erb
文件中,因此可以使用rails部分for每一個模板?它應該是什麼樣的擴展?在Rails框架中,我應該放置我的Backbone模板嗎?
回答
您可以通過在開放標籤使用兩個%
逃脫僱員再培訓局的符號,並把你的骨幹模板在軌觀點:
<script type='text/template' id="my-template'>
<%%= name %>
</script>
將輸出在頁面下面:
<script type='text/template' id="my-template'>
<%= name %>
</script>
當您嘗試學習時,將您的Backbone模板直接放入您的導軌視圖中是恕我直言的最佳選擇。你已經在與新概念搏鬥,不需要再增加一個障礙。
你應該把你的Backbone模板放在哪裏?我會說沒有。我相信在大多數Rails應用程序中,服務器應該負責HTML的所有呈現,而客戶端JavaScript應該只負責將呈現的HTML插入到DOM中。除此之外,這使得I18n更容易。
如果Rails僅作爲主要在客戶端運行的應用程序的輕量級後端使用(但在這種情況下,您可能希望使用Sinatra或其他方法),則會發生異常。在這種情況下,Rails應該可以渲染什麼也沒有,並且有JS做所有的渲染。
請注意這裏的基本原則。服務器應該負責所有渲染,或者客戶端應該負責。分裂它會使生活更加艱難。
渲染的小部分如表格行如何? –
同樣的答案。不要分割渲染。或者我誤解了你的問題? –
也許我誤解了答案。那麼,爲了使用'Backbone.js',我必須在某處編寫模板。這個模板使用'<%= %>'標籤,我的問題是關於是否有一種方法可以讓rails爲客戶端渲染這個標籤,還是有一種我可以用來更容易地渲染Backbone.js(Underscore.js)模板的格式。 –
從Rails 3.1開始,它提供了兩件事讓使用Backbone模板更容易一些:資產管道和自動JST(JavaScript模板)編譯。
在您的app/assets
文件夾中創建一個名爲templates
的文件夾。該目錄將自動被資產管道拾取。
接下來,爲該目錄中的文件命名,擴展名爲jst
,以及您要創建的模板類型爲ejs
(嵌入式JavaScript)。你甚至可以將它們嵌套在目錄中。例如:
app/assets/templates/my_template.jst.ejs
app/assets/templates/bookmarks/show.jst.ejs
資產管道,您還可以通過簡單地改變文件擴展名(幷包括任何必要的寶石)使用其他模板語言,如嵌入式的CoffeeScript,小鬍子,把手等。
我們引用您JST模板在你的骨幹觀點,簡單地使用路徑文件名:
var Bookmark = Backbone.View.extend({
template: JST['bookmarks/show'],
render: function() {
this.$el.html(this.template(this.model.attributes));
return this;
}
});
您可能需要將此行添加到您application.js
:
// require_tree ../templates
這裏有一個很好的文章,這更詳細地解釋了所有這一切:http://www.bigjason.com/blog/precompiled-javascript-templates-rails-3-1
- 1. 在MVC框架中,我們應該放置NODE.js文件嗎?
- 2. 我應該使用Backbone和客戶端模板,比如Mustache嗎?
- 3. 我應該爲我的項目使用MVC模式框架嗎?
- 4. 我應該堅持實體框架嗎?
- 5. 我應該使用報告框架嗎?
- 6. 我應該使用jQuery模板嗎?
- 7. 我應該把我的flex項目放在我的rails項目中嗎?
- 8. 我應該重寫Django(註釋)框架的模板還是在我自己的模板中進行自定義?
- 9. 我應該從我的控制器或MVC框架模型中調用redirect()嗎?
- 10. 我的JavaScript應該放在我的Rails 4應用程序中
- 11. 在Rails中,我應該啓用serve_static_assets嗎?
- 12. 我應該釋放我複製到剪貼板的內存嗎?
- 13. 我應該爲我的後端使用不同的框架嗎?
- 14. 我應該釋放self.view嗎?
- 15. 我應該釋放NSImage嗎?
- 16. 我應該在dealloc中放置我的活動指示符釋放語句嗎?
- 17. nUnit是否有內置的模擬框架,我應該使用它嗎?
- 18. 實體框架:我應該提供雙面關係配置嗎?
- 19. 我應該使用什麼測試框架來測試我的Rails模型?
- 20. 我應該在哪裏放置Rails 5.1的中間件文件?
- 21. 如果我有遺留數據庫,我應該放棄框架嗎?
- 22. 模板,視圖和模型應該放在Django配置應用程序中嗎?
- 23. 在Zend框架中,我應該在哪裏放置自定義驗證器?
- 24. 我可以在Rails中鎖定表嗎? (我應該嗎?)
- 25. 我應該從我的實體框架T4模板中剔除關聯修復代碼嗎?
- 26. 我的應用程序的目錄中應該放置zepto.js嗎?
- 27. 我應該在Rails中使用哪種擴展模板?
- 28. 我應該將字典傳遞給我的模板嗎?
- 29. 我應該在Jenkins中放置gradle.properties
- 30. 我應該在Django中放置models.py?
偉大的提示,我不知道。事實上,我用jst乾淨地存儲在資產內的樹上。 – apneadiving
我使用自定義正則表達式來表示下劃線模板。感謝這兩個'%'提示。 – Agent47DarkSoul