在骨干事件中,项目被冒泡到集合,因此在执行此操作时:
var c = new Backbone.Collection([]);
var item = new Backbone.Model({id:3});
item.on('ping', function() {
console.log('PING [ITEM]', this);
});
c.add(item);
c.on('ping', function() {
console.log('PING [COLLECTION]', this);
});
我们会看到“PING [ITEM]”和“PING [COLLECTION]”都打印出来。 有一件事我仍然没有理解附加到收集的事件 - 我应该如何找出确切发生的项目冒泡事件。
我可以看到没有传递任何参数,并且上下文可以预测为集合本身。 我怀疑这根本不可能,但在这种情况下,我实际上已经理解为什么我们需要那种冒泡。
答案 0 :(得分:1)
c.on('ping', function(addedModel, collection) {
匿名函数的第一个参数是已添加到集合中的模型。
第二个参数将是实际集合。