Tengo un BoardView que contiene una CellCollection de CellModels. Recojo la colección de la base de datos y luego creo las vistas de celda.backbone.js - acceder a un modelo desde un evento de clic
Todo esto funciona muy bien hasta que intento acceder a un modelo de celda mediante un evento de clic en el BoardView. No puedo llegar a los modelos subyacentes ... solo los puntos de vista. ¿Hay alguna forma de hacer esto?
He intentado incluir el código correspondiente a continuación:
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) {
// ?????????
}
});
necesito el clic a "pasar" en la BoardView, no el CellView, porque se trata de la lógica específica de a bordo.
OP aquí. Ambas soluciones funcionaron sin problemas ... y la # 1 es perfecta para mis propósitos. muchas gracias. –
Excelente: si está contento con la respuesta, puede aceptarla haciendo clic en la casilla debajo del puntaje :). – nrabinowitz
Solución 2, en mi opinión, no es una buena idea. El objetivo de Backbone es obtener datos del servidor y representarlos en la vista del cliente, y no obtener datos de la vista y enviar de vuelta. Funciona, pero no es una buena forma. – sntran