是否可以在模板中包含模板?也许类似于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