Backbone.js 视图关闭时删除的集合内容

Backbone.js 视图关闭时删除的集合内容,backbone.js,marionette,backbone-relational,Backbone.js,Marionette,Backbone Relational,在我的应用程序中,我有一个CompositeView,它包装了一个类似购物车的对象。当用户单击某个项目时,该项目将添加到他们的购物车中,实现方式如下: // app.js: app.main.show(new Cart({ collection: order.get('cart') }); ... // cart.js: var Cart = Marionette.CompositeView.extend({ // Lots of configuration stuff ad

在我的应用程序中,我有一个
CompositeView
,它包装了一个类似购物车的对象。当用户单击某个项目时,该项目将添加到他们的购物车中,实现方式如下:

// app.js:
app.main.show(new Cart({ collection: order.get('cart') });

...

// cart.js:
var Cart = Marionette.CompositeView.extend({
    // Lots of configuration stuff
    addItemToCart: function() {
        this.collection.add(new Item());
        console.log(order.get('cart').length === 1); // true
    }
});

...

// back in app.js:
app.main.show(new SomeOtherView()); // closing out cart view
console.log(order.get('cart').length === 1); // false
但是,即使我的
订单
对象在
购物车
视图的整个生命周期中都是持久的,当我关闭
购物车
视图时,控制台对
订单.get('Cart').length的注销为零。我的
order
对象使用主干关系插件来实现
order
对象和
cart
子集合之间的关系,但即使没有它,这个问题也会发生


我遗漏了一些明显的东西吗?

也许你可以在调用
order.get('cart')。length
为零时显示代码?很好。我已经更新了代码。你的购物车视图和购物车模型的生命周期应该完全分开<代码>主干。当您销毁模型时,Relational
将销毁关系,但这应该独立于视图中的任何内容。您是否有其他管理模型生命周期的代码?