在我的应用程序中,我有一个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
但是,即使我的order
对象在视图的整个生命周期中都存在Cart
,但当我关闭Cart
视图时,控制台会为order.get('cart').length
. 我的order
对象正在使用主干关系插件来实现order
对象和子集合之间的关系cart
,但即使没有它,也会出现这个问题。
我错过了一些明显的东西吗?