Marionette CompositeView - Child 保留在 this.children

Marionette CompositeView - Child remains in this.children

我目前正在使用 CompositeView。问题是,当我在 CollectionView 部分的 child 视图之一上调用 destroy() 时,它仍然保留在 this.children._view 对象中,即使它从屏幕上消失了. 如果我尝试对它做任何事情(比如说再次调用 destroy()),它已经被销毁了,但是为什么它没有从 object?[=18= 中删除呢? ]

提前致谢。

Child 视图 parent 没有意识到

这可能听起来很烦人,但它是设计成这样的,因为 CollectionView child 也可能单独存在。据我所知,集合视图的 children 并不知道它们是 children(除了模型被销毁 [并因此从永久存储中删除] 的情况)。

CollectionView.removeChildView 可以帮忙

但是,Marionette 确实公开了一个 CollectionView 方法,该方法正是为您想要做的事情而制作的,CollectionView.removeChildView(view)

CollectionView.removeChildView 将从 DOM 中删除视图,销毁视图(删除视图上的所有侦听器)并将其从 children 容器中删除。请传递您的一个观点。

如果您需要一些关于如何在 child 视图中触发事件 CollectionView.removeChildView 的提示,请给我留言。