В какой месте лучше создать инстансы классов в Ангуляр?

У меня есть массив объетов типа Layer:

let layers = [new ALayers(), new BLayers()];

Я их получаю из сервиса groupLayersServiceв компоненте:

@Component({
  selector: "layer-group",
});

class LayerGroup {
    constructor(private groupLayersService: GroupLayersService) {}
}


Далее в компоненте прогоняю через цикл в шаблоне и отправляю конкретный layer инстанс компоненту-ребенку:
<div *ngFor="let layer in groupLayersService.getLayers()">
   <app-block-layer [layer]="layer"></app-block-layer>
</div>


Все вроде бы хорошо. Дальше в каждом компоненте app-block-layer есть компонент app-tree который рендерит дерево на основе сервиса, котрый получает слой layer.

Т-е компонент app-tree инжектирует уже готовый инстанс дерева Tree на основе подтипов:

[new ALayers(), new BLayers()]

Вопрос - в каком месте создавать инстансы деревьев, судя по всему в компоненте app-block-layer - именно в нем я конкретно знаю с каким типом new ALayers(), new BLayers() я работаю. Значит могу знать какой тип дерева создать new ALayersTree(), new BLayersTree(), чтобы компонент app-tree заинжектил готовый инстанс. Причем компонент не знает точно - это new ALayersTree(), new BLayersTree() - но он знает что это тип Tree от которого унаследованы new ALayersTree(), new BLayersTree().
  • Вопрос задан
  • 29 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
04 мар. 2021, в 15:49
500 руб./в час
04 мар. 2021, в 15:42
8000 руб./за проект