为什么ng-template上的NgTemplateOutlet指令会在页面上打印内容?

时间:2018-08-10 00:49:32

标签: angular

我可以理解为什么<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>

1 个答案:

答案 0 :(得分:1)

ngTemplateOutlet将嵌入式视图插入HTML节点中。原始节点(这里是ng-containerng-template)根本不会显示在DOM中。

例如,您也可以编写

<div *ngTemplateOutlet="contents">Hello World!</div>

<ng-template #contents>These are contents</ng-template>

在此示例中,原始div根本没有插入到DOM中,而是插入了<ng-template #contents>