これが私のコレクションに対する見方です
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 );
}
});
これはコレクションです
var mssg = mssg || {};
mssg.Messages = Backbone.Collection.extend({
model : mssg.Message,
url : 'messages'
});
これが初期化の方法です。
var mssg = mssg || {};
$(function() {
new mssg.MessagesView({
collection : new mssg.Messages()
});
});
問題は、render
バインドされた関数reset
がajaxフェッチ要求の後に起動しないことです。
私がそれにバインドするadd
と動作します。all
debuggin関数にバインドしようとしましたが、すべてのアイテムのsync
イベントがと一緒に呼び出されるとadd
表示されます。