在收集骨干复位事件(Backbone reset event in collection)

2019-07-30 10:30发布

如何骨干复位事件的作品? 据我所理解

  1. 从收藏集中移除所有车型
  2. 添加新的“牵强”模型集合
  3. 火灾重置事件

在我的情况下,每个模型借鉴SVG东西,所以我应该叫从集合中移除模型之前删除功能。 当模型从集合中删除哪个事件被触发?

Answer 1:

正如@保罗指出,有一个发射之前没有预定义的事件reset 。 但是,您可以通过重写提供自己的reset方法在您的收藏。 例如,

var SVGCollection = Backbone.Collection.extend({
    reset: function(models, options) {
        options = options || {};

        if (!options.silent) {
            this.trigger('prereset', this, options);
        }

        Backbone.Collection.prototype.reset.call(this, models, options);
    }
});

和样例用法

var c = new SVGCollection([
    {id: 1},
    {id: 2}
]);
c.on('prereset', function() {
    console.log(c.pluck('id'));
});
c.on('reset', function() {
    console.log(c.pluck('id'));
});
c.reset({id: 3});

见http://jsfiddle.net/nikoshr/8vV7Y/用于演示

您还可能引发对每个型号的事件。



Answer 2:

你是正确的, reset后,老款已被删除并已添加的新车型被激发。

有没有被解雇时,模型是从集合通过除去事件reset方法。

你可能要保持外的收老款车型的参考,然后当复位事件被触发,则必须参考这些模型,因此您可以在SVG调用remove功能他们。



文章来源: Backbone reset event in collection
标签: backbone.js