从集合中删除项目不会触发删除事件

时间:2015-05-13 22:02:56

标签: javascript backbone.js

我在remove事件上有一个带有监听器的集合。

this.listenTo(this.collectionFiltered, 'remove', this.render, this);

我将此集合传递给新视图

var siteInfoView = new SiteInfoView({model: site, parentCollection: this.collectionFiltered});

并从中删除模型。

this.parentCollection.remove(this.model);

这似乎没有触发事件处理程序,我不确定原因。我已经通过创建此侦听器验证了事件并未触发:

this.listenTo(this.collectionFiltered, 'remove', function() {console.log('remove event');}, this);

我原本以为这是因为我尝试跨视图触发事件,但我能够捕获从第一个视图传入第二个视图的模型的更改。我知道事件是从第一个视图在this.collectionFiltered上触发的,因为该视图会发生变化以反映该模型已被删除。

有谁能看到我在这里失踪的东西?

更新: SiteInfoView初始化:

initialize: function(options){
    this.listenTo(this.model, 'change', this.render, this);
    this.parentCollection = options.parentCollection || null;
},

更新2:两个观点的要点:https://gist.github.com/raddevon/aea6b21226e90c6352ba

更新3: This Codepen是为了证明问题而构建的,但它确实有效。显而易见的是我在我的代码中所做的事情,我只是没有看到。

更新4:刚刚在Chrome DevTools中发现了monitorEvents。监控有问题的集合并删除该项目。在DevTools中没有事件记录到控制台。

0 个答案:

没有答案