Mi chiedo se/come un oggetto CompositeView può trasferire i dati nel suo itemView definito. Esempio (ridotto) Codice:Backbone.Marionette: passa i dati attraverso un oggetto CompositeView al relativo elementoView?
var TableView = Backbone.Marionette.CompositeView.extend({
template: '#table-template',
itemView: TableRowView,
itemViewContainer: 'tbody',
});
var TableRowView = Backbone.Marionette.ItemView.extend({
tagName: 'tr',
template: '#table-row-template',
serializeData: function() {
var data = {
model: this.model,
// FIXME This should really only be called once. Pass into TableView, and down into TableRowView?
// That way, getDisplayColumns can be moved to the collection as well, where it makes more sense for it to belong.
columns: this.model.getDisplayColumns()
};
return data;
}
});
sto usando i due per il rendering di una tabella HTML. # table-row-template ha qualche logica di rendering per supportare diversi tipi di "colonne". Ciò mi consente di utilizzare le stesse visualizzazioni per diversi tipi di collezioni/modelli (purché seguano l'API). Finora funziona abbastanza bene!
Tuttavia, come potete vedere sopra, ogni "riga" effettua una chiamata per ottenere gli stessi dati "colonne" ogni volta, quando in realtà volevo solo passare quella in basso una volta, e usare per tutti.
Raccomandazioni?
Grazie!
Apprezzato. Grazie molto. Doc potrebbe fare con un aggiornamento. – starmonkey
n.b. che Marionette v2 ha cambiato 'item *' in 'child *' – alxndr