Backbone.Collection触发'重置'而不是'添加'

时间:2014-07-09 17:07:25

标签: javascript events backbone.js collections fetch

我有一个看似简单的例子,我无法弄清楚。我有最新版本的Backbone,所以'添加'应该在获取时自动触发。我已经确认取得其他方式正常工作。

这里定义了事件监听器

var InstallerListView = Backbone.View.extend({
  $el: $('#installers-list'),
  initialize: function (args) {
    _.extend(this, args);
    this.installers.on('add', function (model) {
      // not reached
      console.log('add triggered');
    });
    this.installers.on('reset', function () {
      // reached
      console.log('reset triggered');
    });
  }
});

在这里,是我的接听电话

installers.fetch({
  reset: true,
  data: {/* some data */}
});

任何有助于添加'我很感激。

1 个答案:

答案 0 :(得分:1)

当您将重置传递到您的提取呼叫主干时,会抑制所有addremove事件,并在结束时仅触发一次重置事件。

来自annotated source

  

如果您有多个项目要比单独添加或删除,   您可以使用新的模型列表重置整个集合,而无需触发   任何粒度添加或删除事件。完成后重置火灾。有用   用于批量操作和优化。

如果有必要,您可以始终绑定到重置事件并自行触发每个模型上的添加事件,或者如果您需要触发它,因为它可以为您的集合添加每个模型override重置事件。 / p>