gpt4 book ai didi

angular - 动态 ngTemplateOutlet 值

转载 作者:太空狗 更新时间:2023-10-29 17:25:08 30 4
gpt4 key购买 nike

有没有办法动态设置 *ngTemplateOutlet 指令的值?

类似的东西:

<div *ngFor="let item of [ 'div', 'span' ]">
<ng-container *ngTemplateOutlet="{{ item }}"></ng-container>
</div>

<ng-template #div>
<div>some text inside a div</div>
</ng-template>

<ng-template #span>
<span>some text inside a span</span>
</ng-template>

当然它不起作用,但我想它很好地解释了我想要实现的目标:如果项目是“div”,那么它应该显示#div 模板,如果它是“span”则#span一个。

最佳答案

只需将 ngTemplateOutlet 指向一个 TemplateRef 变量:

在 HTML 中:

<button (click)="toggleTemplateSelected()">Toggle Template</button>
<br />
<p>Showing
<span class='viewType' *ngIf="showViewTemplate">C</span>
<span class='viewType' *ngIf="!showViewTemplate">C2</span>
template:</p>
<ng-container *ngTemplateOutlet='liveTemplate'></ng-container>

<!--Templates: -->
<ng-template #tmplC>
Hello from TemplateC
</ng-template>

<ng-template #tmplC2>
Hello from TemplateC2
</ng-template>

在代码中:

@ViewChild('tmplC') tmplC: TemplateRef<any>;
@ViewChild('tmplC2') tmplC2: TemplateRef<any>;

showViewTemplate = true;
liveTemplate: TemplateRef<any>;

toggleTemplateSelected() {
this.showViewTemplate = !this.showViewTemplate;
this.liveTemplate = this.showViewTemplate ? this.tmplC : this.tmplC2;
}

您还可以将 ngTemplateOutlet 指向返回 TemplateRef 的函数。

关于angular - 动态 ngTemplateOutlet 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43577481/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com