骨干集合取不火复位()
问题描述:
这是我收集骨干集合取不火复位()
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()
});
});
问题是绑定到reset
的render
函数在ajax提取请求之后不会触发。
如果我将它绑定到add
它的作品。 我尝试绑定all
到调试函数,它说sync
事件与add
并列调用每个项目。
答
如果选中骨干change log,你会看到这样取1.0的处理改变:
更名为集合的“更新”设置,并行性与同类 model.set()并与重置进行对比。现在它是在获取之后的默认更新 机制。如果您想继续使用“复位”,通过
{reset: true}
因此,触发复位事件,你现在必须使用
this.collection.fetch({reset: true})
+0
酷感谢,这是一个新的应用程序,所以我只是切换到新的默认('集') – 2013-03-24 20:24:28
答
骨干1.0,你必须触发复位由手:
youColloection.fetch({reset: true});
你可以试试this.collection.fetch({reset:true})? – nikoshr 2013-03-24 19:53:25
@nikoshr谢谢你的工作!我认为这是暗示寿? – 2013-03-24 20:00:20