[英]Backbone.js sync event in collection
根据这里的文档: http : //documentcloud.github.com/backbone/#FAQ-events集合在我执行与服务器同步集合的操作时触发了同步事件。 我尝试在集合上调用fetch方法并在其上等待同步事件,但它永远不会发生。 触发添加事件,但在同步集合中的所有项目后,我只需要一个事件来更新相应的视图。 还有另一种方法可以解雇这个事件吗?
解决方案是在作为param传递给fetch方法的'success'回调函数中激活同步事件。
this.collection.fetch({add: true, success: function(collection, response){
collection.trigger('sync');
}});
我相信只有在更改模型时才会触发“同步”事件。 因此,如果您创建,更新或删除模型,则会触发“同步”事件。
在你的情况下,我想你想听听集合上的“重置”事件。
编辑:如果您正在设置{add:true}
选项,那么在添加所有模型后将不会触发单个Backbone事件。 你有几个选择:
add
事件并期望它被重复调用 _.debounce()
函数去抖动的处理程序模拟单个事件。 fetch()
的返回值是一个jQuery XMLHttpRequest对象。 它实现了jQuery Deferred接口。 所以你可以听听那个结局。 例如:
myCollection.fetch({add:true}).done(function(){ myView.render(); //or whatever });
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.