骨干又是一些简单的问题。这里没有冗长的描述,而是一些示例代码:
var Group = Backbone.Model.extend({
defaults: {
Product: new Products()
},
initialize: function(data){
var _this = this;
var products = new Products(data.Product);
this.set('Product', products);
this.get('Product').each(function(product){
product.on('destroy', function(){
_this.trigger('change');
}, _this);
});
this.bind('change', this.update, this);
},
update: function(){
console.info("something changed");
console.log(this.get('Product').toJSON());
},
});
所以组模型包含 Product-collection,其中显然包含产品。在初始化时,我试图确保在更改和销毁产品时调用组的更新方法。一切似乎都运行良好,事件被调用,属性看起来很棒但是当我在产品模型中调用destroy方法时它失败了。在更新中,我尝试打印产品集合的内容,我得到的是在删除完成之前的产品。如果我在 500 毫秒超时后调用此调试行,则内容正常。产品被删除等。
因此,根据我的理解,调用产品的销毁事件,然后在实际从集合中删除之前将其传递给组。我究竟做错了什么?