Dies ist meiner Ansicht nach für eine SammlungBackbone-Sammlung holen nicht zurückgesetzt Feuer()
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);
}
});
dies ist die Sammlung
var mssg = mssg || {};
mssg.Messages = Backbone.Collection.extend({
model : mssg.Message,
url : 'messages'
});
und dies ist, wie es initialisiert wird:
var mssg = mssg || {};
$(function() {
new mssg.MessagesView({
collection : new mssg.Messages()
});
});
Das Problem ist, dass die render
Funktion gebunden an reset
nicht nach der Ajax Abrufanforderung ausgelöst wird.
Wenn ich es an add
binden, funktioniert es. Ich versuchte, all
an eine Debugging-Funktion zu binden, und es heißt, dass das Ereignis sync
neben dem add
für jedes Element aufgerufen wird.
Könnten Sie this.collection.fetch versuchen ({reset: true})? – nikoshr
@nikoshr danke das hat funktioniert! Ich dachte, es wäre impliziert, dass? –