首页 文章

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

提问于
浏览
-1

在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>

1 回答

  • -1

    您正在寻找 NgTemplateOutput “从准备好的 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>
    

相关问题