¿Cómo puedo vincular una vista principal a una colección en lugar de a un modelo? ¿Debo envolver la colección en un modelo?Creación de una vista de red troncal para una colección
p. Ej.
Si tengo un modelo de espina dorsal de cliente y una colección de estos llamados Clientes
Client = Backbone.Model.extend({
defaults: {
Name: ''
}
});
Clients = Backbone.Collection.extend({
model: Client,
url: 'Clients'
});
y una vista
var ClientListView = Backbone.View.extend({
template: _.template($("#clients-template").html()),
el: $('#clientlist'),
initialize: function() {
_.bindAll(this, 'render');
this.collection = new Clients();
},
render: function(event){
$(this.el).html(this.template({ this.collection.toJSON()));
return this;
}
});
entonces no se puede acceder a cada elemento de cliente en la plantilla de subrayado. Sin embargo si envuelvo la colección como esta
$(this.el).html(this.template({ clients: this.collection.toJSON() }));
entonces puedo. ¿Es esta la forma correcta de hacerlo? Esperaría que este sea un escenario común, pero no puedo encontrar ningún ejemplo sobre él, ¿lo estoy haciendo de la manera incorrecta?
¿Necesita una 'var that = this;' en la parte superior del método de inicialización en el último ejemplo? – dubilla
@dubilla No, la red troncal establece el contexto para 'this' para los métodos de subrayado con proxy. – EleventyOne
¿Por qué hay un carácter de subrayado para 'this._donutViews = [];'? – fortuneRice