在多个地方输出/渲染模板,与 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>
我使用了 *ngIf
的 else
部分来插入在别处定义的模板。我可以编写 *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>
在 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>
我使用了 *ngIf
的 else
部分来插入在别处定义的模板。我可以编写 *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>