让子视图/子视图知道它们何时已经在 DOM 中的最佳方法是什么?
考虑我们有以下视图层次结构:
MainView
SubView
ChildView
例如,这里MainView
已经在 DOM 中。然后作为render
过程的一部分MainView
创建SubView
,然后创建ChildView
。
因此,在完成渲染ChildView
之前不会在 DOM 中。MainView
我需要知道(通过事件或处理程序)何时插入和显示。
最直接的答案是MainView
在渲染完成时触发一些事件。如果这是我唯一需要它的情况——那就没问题了。但是有很多地方,一般来说突然子视图决定了他们的父母该做什么,可能不好。
更新:在什么情况下需要这样做?当我们使用期望元素在 DOM 中的小部件时(获取高度等)。例如:手风琴小部件,jqGrid。因此,当它们的容器已经在 DOM 中时,初始化它们的正确时间。