Ho un BoardView contenente un CellCollection di CellModels. Prendo la raccolta dal db e quindi creo le CellViews.backbone.js - accesso a un modello da un evento click
Questo funziona perfettamente finché non provo ad accedere a un CellModel tramite un evento click sul BoardView. Non riesco affatto a raggiungere i modelli sottostanti ... solo i punti di vista. C'è un modo per fare questo?
ho tentato di includere il codice specifico in basso:
CellModel = Backbone.Model.extend({});
CellCollection = Backbone.Collection.extend({
model : CellModel
});
CellView = Backbone.View.extend({
className : 'cell',
});
BoardView = Backbone.View.extend({
this.model.cells = new CellCollection();
render : function() {
this.cellList = this.$('.cells');
return this;
},
allCells : function(cells) {
this.cellList.html('');
this.model.cells.each(this.addCell);
return this;
},
addCell : function(cell) {
var view = new Views.CellView({
model : cell
}).render();
this.cellList.append(view.el);
},
events : {
'click .cell' : 'analyzeCellClick',
},
analyzeCellClick : function(e) {
// ?????????
}
});
ho bisogno il clic su "accadere" sul BoardView, non il CellView, perché si tratta di logica specifica di bordo.
OP qui. entrambe le soluzioni hanno funzionato alla perfezione ... e il n. 1 è perfetto per i miei scopi. grazie mille. –
Ottimo - se sei soddisfatto della risposta, puoi accettarlo facendo clic sulla casella di controllo sotto il punteggio :). – nrabinowitz
Soluzione 2, a mio parere, non è una buona idea. L'intero punto di Backbone è quello di ottenere dati dal server e renderli nella vista client, e non di ottenere dati dalla vista e di rimandarli indietro. Funziona, ma non è un bel modo. – sntran