【发布时间】:2011-11-16 00:19:00
【问题描述】:
是否可以在模板中包含模板?也许类似于 ERB 处理部分的方式?
与其尝试以 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() ))
所以,最后我们有这样的嵌套模板:
- 项目索引
- 项目
- 会话
- 会话
- 会话
- 会话
- 项目
- 会话
- 项目
- 会话
- 会话
- 项目
【问题讨论】:
标签: ruby-on-rails templates backbone.js coffeescript