我可以理解为什么<1>起作用,但是令人惊讶的是<2>也可以起作用并在页面上打印内容,为什么? <2>是否不应该创建另一个必须由createEmbeddedView或ngTemplateOutlet等使用的ng-template?
<!-- 1 -->
<ng-container *ngTemplateOutlet="contents"></ng-container>
<!-- 2 -->
<ng-template *ngTemplateOutlet="contents"></ng-template>
<ng-template #contents>These are contents</ng-template>
答案 0 :(得分:1)
ngTemplateOutlet
将嵌入式视图插入HTML节点中。原始节点(这里是ng-container
或ng-template
)根本不会显示在DOM中。
例如,您也可以编写
<div *ngTemplateOutlet="contents">Hello World!</div>
<ng-template #contents>These are contents</ng-template>
在此示例中,原始div根本没有插入到DOM中,而是插入了<ng-template #contents>
。