骨干重置事件如何工作? 据我了解集合中的骨干重置事件
- 取下收集
- 全系车型添加新的“牵强”模式,以收集
- 火灾复位事件
在我的情况下,每个模型对SVG画东西,以便在从集合中删除模型之前,我应该调用remove函数。从模型中删除模型时触发哪个事件?
骨干重置事件如何工作? 据我了解集合中的骨干重置事件
在我的情况下,每个模型对SVG画东西,以便在从集合中删除模型之前,我应该调用remove函数。从模型中删除模型时触发哪个事件?
正如@Paul指出的那样,在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/。
你是对的,reset
被删除旧模型已被删除,并添加新的模型。
当模型通过reset
方法从集合中删除时,没有发生事件。
您可能需要在集合之外保留对旧模型的引用,然后当重置事件被触发时,您将引用这些模型,以便您可以在SVG上为它们调用remove函数。