【发布时间】:2017-03-09 21:27:10
【问题描述】:
同学们!
我正在为我的 Web 应用程序编写一个组件,例如一个表格。表格组件有时是隐藏的,这意味着它在组件树中但不向用户显示。例如:
<custom-tab> <!-- shown -->
<custom-table />
</custom-tab>
<custom-tab> <!-- NOT shown -->
<custom-table />
</custom-tab>
隐藏(未显示)的自定义表格组件将其数据加载到 ngOnInit 方法中,该方法由 Angular 为两个表格(显示和未显示)执行。 如果我将特定的 ngIf 添加到表中(评估是否显示选项卡),则不会调用 ngOnInit 方法。此解决方案非常麻烦,因为可能存在非常复杂的场景,即大量组件层次结构决定是否显示组件。 查看浏览器的 DOM,我发现 DOM 中不存在正确的自定义表格元素。 Angular 无论如何都会初始化这些组件(并调用 ngOnInit)。
问题:
- 角度如何传达组件基本上在 DOM 中并且无法显示(忽略 CSS)?
- 如何有意义地禁止组件在未显示的情况下加载数据,并且仅在向用户显示时才加载数据?
谢谢!
【问题讨论】:
标签: angular