【发布时间】:2021-10-26 16:26:15
【问题描述】:
我正在使用 ng-content 将一个 Angular 组件包装在另一个组件中。外部组件应该完全控制何时渲染内部组件。但是,我遇到了一个我不明白的情况。外部组件使用如下模板(简化):
<ng-template>
<ng-content></ng-content>
</ng-template>
据我了解,内容根本不应该呈现,因为它包含在ng-template 中。在这个example stackblitz 中,可以看到内部组件没有渲染,但它仍然被初始化。内部组件的 OnInit 中的控制台日志仍然显示在控制台中。
我的问题是:
- 为什么会这样?
- 在这种情况下如何避免组件初始化?
【问题讨论】:
-
Hmmmm... 这就提出了一个问题,
<app-outer>的实际内容是什么?是<app-inner>,在app.component.html中定义吗?还是<ng-template>,定义在outer.component.html?我觉得这是在深入挖掘 Angular 的内部工作原理
标签: javascript angular