Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Backbone.js 如何确定主干收集的删除事件被触发的原因?_Backbone.js_Backbone Events_Backbone.js Collections - Fatal编程技术网

Backbone.js 如何确定主干收集的删除事件被触发的原因?

Backbone.js 如何确定主干收集的删除事件被触发的原因?,backbone.js,backbone-events,backbone.js-collections,Backbone.js,Backbone Events,Backbone.js Collections,当模型已从集合中移除时,将触发主干集合上的移除事件 但我需要区分是销毁模型会触发收集时的删除事件,还是仅从收集中删除模型会触发收集时的删除事件。没有简单的方法来区分这两种情况。我建议您自己重写删除方法,并让它触发您自己的事件: 然后当然destroy您可以单独侦听,因为它有自己的事件。您可以将on(“destroy”)事件侦听器添加到模型的initialize方法中,并捕获destroy事件。@Vahan是的,但我只需要收集级别的侦听器。在我的例子中,模型的销毁触发集合上的移除事件和从集合中移除

当模型已从集合中移除时,将触发主干集合上的移除事件


但我需要区分是销毁模型会触发收集时的删除事件,还是仅从收集中删除模型会触发收集时的删除事件。

没有简单的方法来区分这两种情况。我建议您自己重写
删除
方法,并让它触发您自己的事件:


然后当然
destroy
您可以单独侦听,因为它有自己的事件。

您可以将
on(“destroy”)
事件侦听器添加到模型的initialize方法中,并捕获
destroy
事件。@Vahan是的,但我只需要收集级别的侦听器。在我的例子中,模型的销毁触发集合上的移除事件和从集合中移除模型触发集合上的移除事件都有可能。我需要区分两者。你能提供一个问题的例子吗?你的代码中的模型是如何被破坏的?
var YourCollection = Backbone.Collection.extend({
    remove: {
        this.trigger('aboutToRemovedViaRemoveMethod');
        // Call the original remove
        var removeResult = Backbone.Collection.prototype.remove.apply(this, arguments);
        this.trigger('removedViaRemoveMethod');
        return removeResult;
    }
});