是否可以在模板中包含模板?也許類似於ERB處理偏好的方式?Backbone.js與生態模板:如何在模板中包含模板?
與其試圖以像ERB這樣的方式呈現嵌套模型,最好讓Backbone.js處理此問題。
注意,我使用CoffeeScript的語法:
Projects.IndexView
template: JST["backbone/templates/projects/index"]
addAll:() ->
@options.projects.each(@addOne)
addOne: (project) ->
view = new Worktimer.Views.Projects.ProjectView({model : project})
@$("#projects-table").append(view.render().el)
render: ->
$(@el).html(@template(projects: @options.projects.toJSON()))
@addAll()
模型項目已經嵌套集合稱爲會話:
Projects.ProjectView
template: JST["backbone/templates/projects/project"]
$(@el).html(@template(@model.toJSON()))
for s in @model.sessions.models
v = new Worktimer.Views.ProjectSessions.ShowView(model: s)
$(@el).find('.sessions').append(v.render().el)
ProjectSessions.ShowView
template: JST["backbone/templates/project_sessions/show"]
render: ->
$(this.el).html(@template(@model.toJSON()))
所以,最終我們嵌套模板是這樣的:
- 項目指標
- 項目
- 會議
- 會議
- 會議
- 會議
- 項目
- 會議
- 項目
- 會議
- 會議
- 項目
這將是內生態,所以你建議做file.jst.eco.erb? – miketucker
您追加的擴展名越多,將使用的處理器就越多。 –
另外,由於ECO和ERB都使用'<%= %>',ERB會在ECO達到它之前吞噬所有插值! :) – micapam