Backbone / Marionette CollectionView – Render in template?

Tengo una colección que se procesa bien usando Backbone / Marionette / Mustache.

Así que PersonModel y PersonView están funcionando bien. PersonView tiene una plantilla de bigote llamada PersonTemplate que está siendo cargada perfectamente por mi PeopleCollection y PeopleCollectionView y está representada dentro de un tagname: "div" predeterminado tagname: "div" .

Sin embargo, quiero representar esta colección dentro de otra plantilla para poder poner algunos encabezados allí.

En este momento es esencialmente:

 
John
Dave

Pero me gustaría que fuera:

 

People

John
Dave

Entiendo que puedo agregar estos elementos con jQuery después del hecho, pero esperaba evitarlo porque mi CollectionTemplate real es mucho más compleja que el ejemplo que se da aquí.

CompositeView es exactamente lo que necesitas. Aquí es cómo tengo la configuración de CompositeView para el panel de notas simples.

Vista del artículo para cada nota:

 View.NoteRow = Marionette.ItemView.extend({ template: Handlebars.compile(rowTemplate), tagName: "tr", className: "row-item", }) 

La vista compuesta:

  View.NotesPanel = Marionette.CompositeView.extend({ template: Handlebars.compile(panelTemplate), itemView: View.NoteRow, itemViewContainer: "tbody", className: "panel panel-default button-panel notes-panel", events: { "click button#add-note" : "addNote" } }) 

Ahora las plantillas:

Plantilla de panel:

 

Notes

User Note

Y la plantilla de la fila:

 {{employee_id}}  

{{note_text}}

{{humanize created_at}}

En su definición de CompositeView usted especifica qué plantilla desea usar (panelTemplate) en mi ejemplo. A continuación, especifique qué ItemView utilizar para cada modelo en la colección que contiene la vista compuesta. (View.NoteRow en mi ejemplo). Luego de definir el contenedor dentro de su plantilla en el que cada ItemView entrará (soy cada uno de mis ItemViews en)