これは、これはコレクションバックボーンコレクションがリセットされ発生しませんフェッチ()
var mssg = mssg || {};
mssg.Messages = Backbone.Collection.extend({
model : mssg.Message,
url : 'messages'
});
ある
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 || {};
$(function() {
new mssg.MessagesView({
collection : new mssg.Messages()
});
});
reset
にバインドされたrender
機能がajaxフェッチ要求の後に起動しないという問題があります。
私はadd
にバインドすれば動作します。 私はデバッグ機能にall
をバインドしようとしましたが、sync
イベントはすべての項目に対してadd
と並んで呼び出されます。
this.collection.fetch({reset:true})を試してもよろしいですか? – nikoshr
@nikoshrは働いてくれてありがとう!私はそれが暗黙のthoと思った? –