Questa è la mia vista per una collezionecollezione spina dorsale recuperare non sparare reset()
var mssg = mssg || {};
mssg.MessagesView = Backbone.View.extend({
el: '#messages',
initialize: function() {
this.collection.fetch();
this.collection.bind('reset', this.render, this);
},
render : function() {
this.$el.html('');
this.collection.each(function(item) {
this.renderMessage(item);
}, this);
return this;
},
renderMessage : function(item) {
var messageView = new mssg.MessageView({
model : item
});
this.$el.append(messageView.render().el);
}
});
questa è la collezione
var mssg = mssg || {};
mssg.Messages = Backbone.Collection.extend({
model : mssg.Message,
url : 'messages'
});
e questo è il modo in cui viene inizializzato:
var mssg = mssg || {};
$(function() {
new mssg.MessagesView({
collection : new mssg.Messages()
});
});
Il problema è che la funzione render
associata a reset
non viene attivata dopo la richiesta di recupero ajax.
Se lo si associa a add
, funziona. Ho provato a legare all
a una funzione debuggin e dice che l'evento sync
viene chiamato insieme a add
per ogni articolo.
Provare this.collection.fetch ({reset: true})? – nikoshr
@nikoshr grazie che ha funzionato! Pensavo fosse implicito tho? –