gpt4 book ai didi

javascript - 两个不同循环内的 ngtemplateoutlet

转载 作者:行者123 更新时间:2023-11-30 19:28:29 27 4
gpt4 key购买 nike

我需要在两个不同的地方重复相同的代码。profile1 和 profile2 是数组。我想重复相同的 html 代码而不重复它们

   profile1 = [{name : 'mr.A1',age : 25  },
{name : 'mr.B1',age : 23}];
profile2 = [{name : 'mr.A2',age : 25 },
{name : 'mr.B2',age : 23}];


<ng-container *ngFor="let x of profile1">
<ng-template #templateRef>
<p> {{x.name}}</p>
<p> {{x.age}}</p>
</ng-template>
<ng-template [ngTemplateOutlet]="templateRef"></ng-template>
</ng-container>

// above code shows the result
mr.A1
25
mr.B1
23

// below code shows nothing

<ng-container *ngFor="let x of profile2">
<ng-template [ngTemplateOutlet]="templateRef"></ng-template>
</ng-container>

// i want following results using ngTemplateOutlet
mr.A2
25
mr.B2
23

最佳答案

这种动态行为最适合自定义组件。

但如果您想要采用这种方式,请知道您必须使用 ngTemplateOutletContext 将数据发送到您的模板引用。

这样做是这样的:

<ng-template #profile let-person>
<div>
{{ person?.name }} is {{ person?.age }} years old.
</div>
</ng-template>

<h1>First batch</h1>

<ng-container *ngFor="let person of profiles">
<ng-container *ngTemplateOutlet="profile; context: { $implicit: person }"></ng-container>
</ng-container>

<h1>Second batch</h1>

<ng-container *ngFor="let person of profiles">
<ng-container *ngTemplateOutlet="profile; context: { $implicit: person }"></ng-container>
</ng-container>

Stackblitz - Documentation

关于javascript - 两个不同循环内的 ngtemplateoutlet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56680125/

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