Javascript AngularJS:有没有办法知道另一个指令中包含的指令何时被加载?
我有一个包含其他指令列表的指令。在每个子指令中,它们可以有任意数量的Javascript AngularJS:有没有办法知道另一个指令中包含的指令何时被加载?,javascript,jquery,angularjs,angularjs-directive,Javascript,Jquery,Angularjs,Angularjs Directive,我有一个包含其他指令列表的指令。在每个子指令中,它们可以有任意数量的.itemHTML元素。在parent指令内部,我想使用jQuery引用所有这些.item元素。因此,我尝试了以下方法: HTML结构 <parent> <div class='item'></div> <ul> <li ng-repeat='child in children'> <!-- loads template that m
.item
HTML元素。在parent指令内部,我想使用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>
-
在父函数
link()
中调用$(“.item”).size()
。在这种情况下,它总是返回1。是否有一种方法可以在加载所有子指令后调用函数,这样我就可以访问所有的内部.item元素?我想,这是因为在内部指令运行之前查询DOM太早了。
尝试:
或者,$timeout
如果您需要在timeout回调函数中执行与作用域相关的操作
您也可以尝试:
但是如果没有代码示例,很难判断哪一个可以工作。
您可以在此处阅读有关setTimeout
和$evalAsync
差异的更多信息:
setTimeout(function(){
$(".item").size();
}, 0);
scope.$evalAsync(function(){
$(".item").size();
});