2

让子视图/子视图知道它们何时已经在 DOM 中的最佳方法是什么?

考虑我们有以下视图层次结构:

MainView
   SubView
      ChildView

例如,这里MainView已经在 DOM 中。然后作为render过程的一部分MainView创建SubView,然后创建ChildView

因此,在完成渲染ChildView之前不会在 DOM 中。MainView我需要知道(通过事件或处理程序)何时插入和显示。

最直接的答案是MainView在渲染完成时触发一些事件。如果这是我唯一需要它的情况——那就没问题了。但是有很多地方,一般来说突然子视图决定了他们的父母该做什么,可能不好。

更新:在什么情况下需要这样做?当我们使用期望元素在 DOM 中的小部件时(获取高度等)。例如:手风琴小部件,jqGrid。因此,当它们的容器已经在 DOM 中时,初始化它们的正确时间。

4

1 回答 1

-1

我不确定您的用例是什么,但我假设它在 Childview 中找到一个 DOM 元素并对其进行操作。在这种情况下,它是否在 DOM 中并不重要。

我通常做的是获取对元素的引用 -$el

然后找到子元素

$target = $el.find('.target')

这还有一个额外的好处,就是只允许我在 ChildView 中获取类或 ID,以确保正确管理视图。

于 2013-03-17T23:02:22.513 回答