ope*_*sas 10 backbone.js backbone.js-collections
最新版本的Backbone中有一种新行为(1.0.0,其中在获取Collection后,默认情况下不再触发重置事件.
http://backbonejs.org/#changelog
重命名Collection的"更新"以设置,与类似的model.set()并行,并与reset对比.它现在是获取后的默认更新机制.如果您想继续使用"重置",请通过{reset:true}.
问题是我想在最终获取集合时捕获事件(确实非常常见!)
我可以听取添加,删除和更改事件,但如果集合是空的,我不知道如何捕获事件.
那么,什么是新的,推荐的方式来捕获收集请求何时完成,或者它是否通过{reset = true}实现它的唯一方法?
ps:这是原始问题,BTW 无法捕获Backbone Collection重置事件
nik*_*shr 23
每当模型或集合开始与服务器同步时,都会发出"请求"事件.如果请求成功完成,您将收到"同步"事件,如果没有,则收到"错误"事件.
例如,
var C = Backbone.Collection.extend({
url: '/echo/json/'
});
var c = new C();
c.on('sync', function() {
console.log('sync');
});
c.fetch();
Run Code Online (Sandbox Code Playgroud)
和演示http://jsfiddle.net/nikoshr/GLATm/
sac*_*024 10
当我们调用fetch集合时,我们可以将方法作为成功处理程序传递,并且正如您所说的那样,当发生[添加,删除,更新或重置]所有内容时,您只想执行某些操作,您可以在此成功处理程序中执行此操作.
collection.fetch({
success: function() {
// Do Something
// This is called when all add, remove and update operations have been done
}
});
Run Code Online (Sandbox Code Playgroud)
注意:无论您是否通过,都会执行成功处理程序reset:true.无论您的集合是否为空,当所有添加,删除和更新事件都发生时,它将在最后一步调用.
如果它不能解决您的问题,请告诉我.
| 归档时间: |
|
| 查看次数: |
15893 次 |
| 最近记录: |