gpt4 book ai didi

angular - 具有动态值的 ngTemplateOutlet

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

我正在使用具有动态值的 ngTemplateOutlet。

<ng-container *ngFor="let part of objectKeys(config);">
<ng-container *ngIf="config[part]">
<ng-container [ngTemplateOutlet]="part"></ng-container>
</ng-container>
</ng-container>

<ng-template #one></ng-template>
<ng-template #two></ng-template>
  • 在哪里config是一个对象
  • 在哪里config[part]是一个 bool 值
  • 在哪里part是对象的键和传递给 ngTemplateOutlet 的值。

我总是得到错误:

ERROR TypeError: templateRef.createEmbeddedView is not a function

我关注了:https://stackoverflow.com/a/41241329/5627096

但也许我不能做那样的事情。

实际上配置对象包含 bool 值,就像我说的,并定义要显示的表单部分。

它真的很大,为了更好地阅读,我正在寻找拆分它的解决方案。

更新

配置对象看起来像:

config = {
one: true,
two: false
}

所以在我的表单中只有 <ng-template #one></ng-template>被陈列。如果我将两个设置为真,则两者都会显示。

我不知道这是否是最好的方法。我可以使用 *ngIf,但使用此解决方案时,我的代码实在是太难读了。

最佳答案

将这些添加到组件类

@ViewChild('one') one:TemplateRef<any>;
@ViewChild('two') two:TemplateRef<any>;

并使用

获取模板引用
<form no-validate (ngSubmit)="onSubmit(search)">
<ng-container *ngFor="let part of objectKeys(config);">
<ng-container *ngIf="config[part]">
<ng-container [ngTemplateOutlet]="this[part]"></ng-container>
</ng-container>
</ng-container>
</form>

StackBlitz example

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

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