gpt4 book ai didi

javascript - 主干集合获取不会触发重置()

转载 作者:行者123 更新时间:2023-12-03 21:50:43 25 4
gpt4 key购买 nike

这是我对收藏的看法

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()
});
});

问题是绑定(bind)到 resetrender 函数在 ajax 获取请求后不会触发。

如果我将它绑定(bind)到add,它就可以工作。我尝试将 all 绑定(bind)到 debuggin 函数,它表示 sync 事件与每个项目的 add 一起调用。

最佳答案

如果你检查主干change log ,您将看到 1.0 中处理 fetch 的方式发生了变化:

Renamed Collection's "update" to set, for parallelism with the similar model.set(), and contrast with reset. It's now the default updating mechanism after a fetch. If you'd like to continue using "reset", pass {reset: true}

因此,要触发重置事件,您现在必须使用

this.collection.fetch({reset: true})

关于javascript - 主干集合获取不会触发重置(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15603107/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com