Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Backbone.js 让子视图知道何时插入DOM的最佳方法_Backbone.js - Fatal编程技术网

Backbone.js 让子视图知道何时插入DOM的最佳方法

Backbone.js 让子视图知道何时插入DOM的最佳方法,backbone.js,Backbone.js,当子视图/子视图已经在DOM中时,让它们知道它们的最佳方式是什么 假设我们有以下视图层次结构: MainView SubView ChildView 例如,这里的MainView已经在DOM中。然后,作为渲染过程的一部分,MainView创建子视图,子视图依次创建子视图 因此,在MainView完成其“渲染”之前,ChildView不会在DOM中。我需要通过事件或处理程序知道它何时被插入和显示 最直接的答案是MainView在完成渲染时触发一些事件。如果这是我唯一需要它的情况

当子视图/子视图已经在DOM中时,让它们知道它们的最佳方式是什么

假设我们有以下视图层次结构:

MainView
   SubView
      ChildView
例如,这里的MainView已经在DOM中。然后,作为渲染过程的一部分,MainView创建子视图,子视图依次创建子视图

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

最直接的答案是MainView在完成渲染时触发一些事件。如果这是我唯一需要它的情况,那就好了。但是有很多地方,通常情况下,子视图突然命令他们的父母做什么,可能不好

更新:
在什么情况下需要这样做?当我们使用希望元素在DOM中获得高度的小部件时,例如:Accordion小部件、jqGrid。因此,当它们的容器已经在DOM中时,初始化它们是正确的时间。

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

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

然后找到子元素

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

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

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

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

然后找到子元素

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

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

因此,我实际上使用了nanoScroller插件,并使用我的方法对其进行了初始化,因为它是一个Jquery库……对我来说似乎很好。这可能有助于解决您的高度/宽度问题-根据您的链接,接受答案:在连接后尝试获取高度。纳米克罗勒可能是一个坏例子。改为Accordion:所以我实际上使用了nanoScroller插件,并使用我的方法对其进行了初始化,因为它是一个Jquery库……对我来说似乎很好。这可能有助于解决您的高度/宽度问题-根据您的链接,接受答案:在连接后尝试获取高度。纳米克罗勒可能是一个坏例子。改为手风琴: