Как отобразить блок после всех дочерних блоков в Angular, используя проекцию? (для гуру) - PullRequest
0 голосов
/ 09 ноября 2019

У меня есть компонент, который повторяется рекурсивно:

<app-block [form]="form" *ngFor="let form of formService.roots()"></app-block>

А внутри <app-block> есть рекурсия:

<!-- Build children <app-block> -->
<div class="block_children" *ngIf="formService.hasChild(form.name)">
    <app-block
        [form]="childForm"
        *ngFor="let childForm of formService.child(form.name)"
    >
    </app-block>
</div>
<!-- Build fields -->
<app-field
    [form]="form"
    [field]="field"
    *ngFor="let field of formService.getFields(form.form)"
    >
</app-field>

Проблема в том, что мне нужны поля отображения <app-field> только когда я получаю все дочерние блоки для родителя <app-block>

Итак, теперь результат таков:

Block 1
    Block 2
Fields from block 1
Block 3 
    Block 4
Block 5 

Но мне нужно, чтобы поля из корневого (родительского) блока отображались вконец после показа всех детей:

Block 1
    Block 2
Block 3 
    Block 4
Block 5 
Fields from block 1 

Я попробовал место <ng-content></ng-content>:

<app-block [form]="form" *ngFor="let form of formService.roots()">
    <ng-template></ng-template> <!-- Get childrens -->
</app-block>

И внутри tempalate:

<ng-content></ng-content>

Но это не такработа для меня

...