AngularJS:有没有办法知道包含在另一个指令中的指令何时加载
AngularJS: Is there a way to know when directives contained inside another directive have loaded?
我有一个包含其他指令列表的指令。在这些子指令中的每一个中,它们可以具有任意数量的.item
HTML元素。在父指令内部,我想使用jQuery引用所有这些.item
元素。所以我尝试了以下方法:
HTML结构
<parent>
<div class='item'></div>
<ul>
<li ng-repeat='child in children'>
<!-- loads template that may have one or more divs with .item on them -->
<child='child' />
</li>
</ul>
</parent>
并且在父CCD_ 3函数内部我调用CCD_。在这种情况下,它总是返回1。有没有一种方法可以在加载了所有子指令后调用函数,这样我就可以访问所有内部的.item元素?
我想,这是因为在内部指令运行之前查询DOM太早了。尝试:
setTimeout(function(){
$(".item").size();
}, 0);
或者$timeout
,如果您需要在超时回调函数中执行与范围相关的操作。
您也可以尝试:
scope.$evalAsync(function(){
$(".item").size();
});
但如果没有代码示例,很难判断哪一个会工作。您可以在此处阅读更多关于setTimeout
和$evalAsync
差异的信息:AngularJS:$evalAsync与$timeout。
相关文章:
- 如何在另一个组件中获取指令/组件实例
- 如何使用其他自定义指令中的元素标记作为另一个自定义指令的模板
- 调用另一个自定义指令的角度自定义指令
- AngularJs 从指令中的另一个调用控制器
- 如果指令包含在另一个指令中,我如何在隔离范围内添加双向数据绑定属性
- 测试依赖于另一个指令Angularjs的指令
- 如何在angularjs中访问一个指令作用域值到另一个指令
- 当uib分页被包装在另一个指令中时,AngularJS表数据没有更新
- ng-repeat=“(key, value)” 不能将 {{key}} 的值用作另一个指令的全局范围的一部分
- 如何在angularjs中将一个具有赋值的指令转换为另一个指令
- 从另一个模块访问作用域的指令
- 从另一个指令访问指令的作用域变量
- 如何从另一个指令访问指令的 DOM 元素
- 如何仅当存在时才要求指令(在另一个指令内)
- 使用 AngularJS 需要选项调用另一个指令
- 另一个排除指令内的角度排除指令
- 使用一个指令从另一个独立作用域复制范围属性
- 角度:在另一个模态指令中加载的谷歌地图指令保持空白
- 自定义指令如何知道它是否已单击另一个控件
- 在另一个指令中使用 ui-tinymce 指令