Задать вопрос
fomenkogregory
@fomenkogregory
Юниор софтварный инженер

Angular recursive component with custom templates. How to create?

Добрый вечер, господа. Пытаюсь сделать рекурсивный компонент, но так чтобы можно было задавать любой вью для данных через ngTemplateOutlet. Подскажите как лучше сделать? Сейчас проблема в том чтобы передавать темплейт внутрь компонента.
пример https://stackblitz.com/edit/angular-render-recursi...
только здесь темплейт захардкожен.
апи таким будет (если это возможно)
//  recursive-view.component.ts
export class RecursiveViewComponent<T> {
  @Input() value: RecursiveArray<T> = []
  @ContentChild('templateRef') templateRef: TemplateRef<unknown>
}

// recursive-view.component.html
<ng-container *ngIf="isArray; else itemView">
  <app-recursive-view *ngFor="let item of value" [value]="item">
     <!-- Вот здесь должен быть ng-template как снаружи чтобы рекурсия продолжалась :|  -->
  </app-recursive-view>
</ng-container>

<ng-template #itemView>
  <ng-container *ngTemplateOutlet="templateRef; context: {$implicit: value}"></ng-container>
</ng-template>

// app.component.html
<app-recursive-view [value]="value">
  <ng-template #templateRef let-data>
    <h1>{{data.name}}</h1>
    <h3>{{data.text}}</h3>
    <h5>{{data.likes}}</h5>
  </ng-template>
</app-recursive-view>
  • Вопрос задан
  • 100 просмотров
Подписаться 1 Средний 9 комментариев
Помогут разобраться в теме Все курсы
  • Skillbox
    JavaScript
    3 месяца
    Далее
  • Яндекс Практикум
    Фронтенд-разработчик расширенный
    13 месяцев
    Далее
  • Академия Eduson
    Fullstack-разработчик на JavaScript
    11 месяцев
    Далее
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы