首页 > 解决方案 > 将 ngFor 的每个元素都包装在新容器中?

问题描述

我目前拥有的是具有此模板的父组件:

<div class="fxcol full-height" [ngStyle]="style">
  <ng-container *ngFor="let container of form.Containers; let i=index">
    <ev-container class="ev-container " [container]="container" [parentForm]="parentForm" [params]="params"></ev-container>
  </ng-container>
</div>

我想要实现的是每个用它包裹的 ev-container 都是这样的 div 元素的下一个兄弟姐妹:

<div class="fxcol full-height">
    <ev-container class="ev-container"></ev-container>

    <div class="fxcol full-height">
        <ev-container class="ev-container"></ev-container>

        <div class="fxcol full-height">
            <ev-container class="ev-container"></ev-container>
        </div>

    </div>

</div>

此问题是否有任何已知的解决方法?

谢谢你!

标签: angularwrapperngfor

解决方案


我没有检查,但这应该可以

<ng-container
    [ngTemplateOutlet]="tpl"
    [ngTemplateOutletContext]="{ index: 0, list: form.Containers }">
</ng-container>

<ng-template #tpl let-index="index" let-list="list">
    <div *ngIf="list && list[index]" class="fxcol full-height" [ngStyle]="style">
        <ev-container class="ev-container"
            [container]="form.Containers[index]"
            [parentForm]="parentForm"
            [params]="params">
        </ev-container>
        <ng-container
            [ngTemplateOutlet]="tpl"
            [ngTemplateOutletContext]="{ index: index + 1, list: list }">
        </ng-container>
    </div>
</ng-template>

推荐阅读