我正在修复一些遗留的Angular 1.5代码上的一个错误。
我有一个类似的模板
<div id="container" ng-if="ctrl.show_container">
<div id="child"></div>
</div>
我需要操作div#child
。我使用$element.find((来获取子div。不幸的是,代码似乎在template/DOM完成渲染之前就运行了——由于容器上的条件渲染,它找不到任何东西。如果我移除ng-if
,它就能够按预期找到元素。
有没有什么方法可以执行我的DOM操作,直到完成所有的条件呈现?
谢谢
如果你只做简单的情况:
ctrl.show_container = true;
$timeout(() => $element.find(...))
如果这还不够,您最好在#child
元素上添加一些指令。
scope.$watch('$viewContentLoaded', functionToManipulateDom)