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