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 - Fatal编程技术网

如何在backbone.js中停止删除

如何在backbone.js中停止删除,backbone.js,backbone-events,Backbone.js,Backbone Events,我有一个精灵集合和一个框架集合(每个框架中都有一个精灵实例),如果精灵集合在框架集合中使用,我不想从精灵集合中删除精灵 我已经研究了删除事件的监听,应该能够检测到它是否在frames集合中,但毫无例外,我怀疑我可以阻止删除精灵 我应该查找什么事件,还是应该查找更复杂的事件?删除方法的主干源代码: remove: function(models, options) { models = _.isArray(models) ? models.slice() : [model

我有一个精灵集合和一个框架集合(每个框架中都有一个精灵实例),如果精灵集合在框架集合中使用,我不想从精灵集合中删除精灵

我已经研究了删除事件的监听,应该能够检测到它是否在frames集合中,但毫无例外,我怀疑我可以阻止删除精灵


我应该查找什么事件,还是应该查找更复杂的事件?

删除
方法的主干源代码:

     remove: function(models, options) {
        models = _.isArray(models) ? models.slice() : [models];
        options || (options = {});
        var i, l, index, model;
        for (i = 0, l = models.length; i < l; i++) {
          model = this.get(models[i]);
          if (!model) continue;
          delete this._byId[model.id];
          delete this._byId[model.cid];
          index = this.indexOf(model);
          this.models.splice(index, 1);
          this.length--;
          if (!options.silent) {
            options.index = index;
            model.trigger('remove', model, this, options);
          }
          this._removeReference(model);
        }
        return this;
      },
  var SpriteCollection = Backbone.Collection.extend({

    remove: function(attrs, options) {
      //Some your checks
      return Backbone.Collection.prototype.remove.call(this, options);
    }

  });

删除方法的主干源:

     remove: function(models, options) {
        models = _.isArray(models) ? models.slice() : [models];
        options || (options = {});
        var i, l, index, model;
        for (i = 0, l = models.length; i < l; i++) {
          model = this.get(models[i]);
          if (!model) continue;
          delete this._byId[model.id];
          delete this._byId[model.cid];
          index = this.indexOf(model);
          this.models.splice(index, 1);
          this.length--;
          if (!options.silent) {
            options.index = index;
            model.trigger('remove', model, this, options);
          }
          this._removeReference(model);
        }
        return this;
      },
  var SpriteCollection = Backbone.Collection.extend({

    remove: function(attrs, options) {
      //Some your checks
      return Backbone.Collection.prototype.remove.call(this, options);
    }

  });

谢谢它看起来不错,所以我会很快给它一个机会,并接受它,如果它工作你需要通过模型在你的答案中被删除(你称它们为attr的),所以我已经纠正了这一点,并接受了你的答案。谢谢。它看起来不错,所以我会很快给它一个机会,如果它有效,我会接受它。你需要通过模型在你的答案中被删除(你称它们为attr's),所以我已经纠正了这一点,并接受了你的答案。