Come è possibile associare una vista backbone a una raccolta anziché a un modello? Devo avvolgere la collezione in un modello?Creazione di una vista backbone per una collezione
ad es.
Se ho un modello di spina dorsale client e una collezione di questi cosiddetti clienti
Client = Backbone.Model.extend({
defaults: {
Name: ''
}
});
Clients = Backbone.Collection.extend({
model: Client,
url: 'Clients'
});
e 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;
}
});
allora non posso accedere a ciascun elemento cliente nel modello di sottolineatura. Tuttavia se avvolgo la raccolta in questo modo
$(this.el).html(this.template({ clients: this.collection.toJSON() }));
allora posso. È questo il modo corretto per farlo? Mi aspetto che questo sia uno scenario comune, ma non riesco a trovare alcun esempio su di esso, sto andando su di esso nel modo sbagliato?
Avete bisogno di un 'var that = this;' all'inizio del metodo di inizializzazione nell'ultimo esempio? – dubilla
@dubilla No, backbone imposta il contesto su 'this' per i metodi di sottolineatura con proxy. – EleventyOne
Perché c'è un carattere di sottolineatura per 'this._donutViews = [];'? – fortuneRice