让子视图在DOM中插入时知道的最佳方法

时间:2013-03-17 19:16:16

标签: backbone.js

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

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

MainView
   SubView
      ChildView

这里举例说明MainView已经在DOM中了。然后,render进程MainView的一部分创建SubView,然后创建ChildView

结果ChildViewMainView完成'渲染之前'不会出现在DOM中。我需要知道(通过事件或处理程序)何时插入和显示它。

最简单的答案是MainView在完成渲染时触发某些事件。如果这是我需要它的唯一情况 - 那就没问题了。但是有很多地方,总的来说突然间的次要观点要求他们的父母做什么,可能不好。

更新 的: 在什么情况下这是必需的?当我们使用小部件时,期望元素在DOM中(获得高度等)。在示例中:Accordion widget,jqGrid。因此,当他们的容器已经在DOM中时,启动它们的正确时间。

1 个答案:

答案 0 :(得分:-1)

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

我通常会抓住对元素的引用 - $el

然后找到子元素

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

这样做的另一个好处是只允许我在ChildView中抓取类或ID,以确保正确管理视图。