在多个地方输出/渲染模板,与 ngIf 条件分开

Output / render template in multiple places, separate from ngIf condition

在 Angular 模板中说我想根据某些条件选择渲染嵌入视图 (<ng-template>) 的位置。

<ng-template #foo>
  Hello World.
</ng-template>

<p *ngIf="isBar; else baz">
  Bar:  <!-- Want to insert #foo here, sometimes -->
</p>
<div #baz>
  Baz:  <!-- Want to insert #foo over here instead, other times -->
</div>

我使用了 *ngIfelse 部分来插入在别处定义的模板。我可以编写 *ngIf="false; else #foo" 来呈现嵌入式视图模板,但我觉得这不是必需的。

<p *ngIf="isBar; else baz">
  Bar:  <ng-container *ngIf="false; else foo"></ng-container>
</p>
<div #baz>
  Baz:  <ng-container *ngIf="false; else foo"></ng-container>
</div>

您正在寻找 NgTemplateOutput "Inserts an embedded view from a prepared TemplateRef."

https://angular.io/api/common/NgTemplateOutlet

<ng-template #foo>
  Hello World.
</ng-template>

<p *ngIf="isBar; else baz">
  Bar:  <ng-container *ngTemplateOutlet="foo"></ng-container>
</p>
<div #baz>
  Baz:  <ng-container *ngTemplateOutlet="foo"></ng-container>
</div>