在未显示的 DOM 元素中防止 angular 到 运行
preventing angular to run in non displayed DOM elements
假设我有一个这样的 HTML 结构
<myHandler>
<element_1 ng-controller="..." ng-init="">
content
</element_1>
<element_2 ng-controller="..." ng-init="">
content
</element_2>
</myHandler>
所以,我的 css 说 element_2 有显示:none;
如何告诉 angular 不要 运行 在这些隐藏的元素上?
并且 运行 只有(一次)当它们可见时?
为了进一步说明情况,myHandler 正在处理授权并根据权限显示 element_1/element_2。
所以我不想初始化 element_2 如果它没有权限
而不是保留显示 none ,只保留带有标志变量的属性 ng-if
因为如果我们使用 ng-if 然后没有元素被添加到 dom 或者如果没有添加元素那么没有控制器将被实例化。
<myHandler>
<element_1 ng-controller="..." ng-init="">
content
</element_1>
<sample ng-if="isDisplay">
<element_2 ng-controller="..." ng-init="">
content
</element_2>
</sample>
</myHandler>
假设我有一个这样的 HTML 结构
<myHandler>
<element_1 ng-controller="..." ng-init="">
content
</element_1>
<element_2 ng-controller="..." ng-init="">
content
</element_2>
</myHandler>
所以,我的 css 说 element_2 有显示:none;
如何告诉 angular 不要 运行 在这些隐藏的元素上? 并且 运行 只有(一次)当它们可见时?
为了进一步说明情况,myHandler 正在处理授权并根据权限显示 element_1/element_2。
所以我不想初始化 element_2 如果它没有权限
而不是保留显示 none ,只保留带有标志变量的属性 ng-if 因为如果我们使用 ng-if 然后没有元素被添加到 dom 或者如果没有添加元素那么没有控制器将被实例化。
<myHandler>
<element_1 ng-controller="..." ng-init="">
content
</element_1>
<sample ng-if="isDisplay">
<element_2 ng-controller="..." ng-init="">
content
</element_2>
</sample>
</myHandler>