木偶复合视图 - 孩子仍然在这个孩子

时间:2015-11-22 11:52:45

标签: backbone.js marionette composite-view

我目前正在使用CompositeView。问题是,当我在destroy()部分的其中一个子视图上调用CollectionView时,它仍然保留在this.children._view对象中,即使它从屏幕上消失。 如果我尝试对它做任何事情(让我们说再次调用destroy())比它说的那样,它已经被破坏了,但为什么不从对象中删除呢?

提前致谢。

1 个答案:

答案 0 :(得分:0)

子视图不是父母可识别的

这可能听起来很烦人,但它的设置就像设计一样,因为CollectionView子项也可能独立存在。据我所知,收藏视图的孩子不知道他们是孩子(除了模型被销毁的情况[因此从永久存储中删除])。

CollectionView.removeChildView可以提供帮助

但是,Marionette确实公开了一个CollectionView方法,该方法完全符合您的要求,CollectionView.removeChildView(view)

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

如果您需要有关如何在子视图上触发CollectionView.removeChildView事件的提示,请给我发表评论。