Можно ли включить шаблон в шаблон? Может быть, что-то похожее на то, как ERB обрабатывает партиалы?
Вместо того, чтобы пытаться визуализировать вложенные модели в стиле ERB, лучше позволить Backbone.js позаботиться об этом.
Обратите внимание, я использую синтаксис coffeescript:
Проекты.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()
модельный проект имеет вложенную коллекцию, называемую сеансами:
Проекты.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() ))
Итак, в итоге у нас есть такие вложенные шаблоны:
- Projects Index
- Project
- Session
- Сессия
- Сессия
- Сессия
- Project
- Session
- Project
- Session
- Сессия
- Project