У меня есть 3 модуля с компонентом в каждом:
tasks
>tasks
-tasks.component.ts|html|css
-tasks.module.ts
people
>people
-people.component.ts|html|css
-people.module.ts
dynamic-container
>dynamic-container
-dynamic-container.component.ts|html|css
-dynamic-container.module.ts
и я использую пакет ng-dynamic-component для постановки задач, люди а в будущем некоторые другие компоненты будут динамически перемещаться в DynamicContainerComponent.
динамический-контейнер.html
<div *ngFor="let dynComponent of dynComponents()">
<ndc-dynamic [ndcDynamicComponent]="dynComponent.component">
</ndc-dynamic>
</div>
массив dynComponents выглядит так:
public dynComponents: ITabComponent[] = [
{ name: 'Tasks', icon: 'tasks', component: TasksComponent },
{ name: 'People', icon: 'people', component: PeopleComponent }
];
Теперь это уже создает зависимость от TasksModule и PeopleModule, но, кроме того, DynamicContainerModule выглядит так:
@NgModule({
declarations: [DynamicContainerComponent],
imports: [
CommonModule,
TasksModule,
PeopleModule,
DynamicModule.withComponents([TasksComponent, PeopleComponent])
],
exports: [DynamicContainerComponent]
})
export class DynamicContainerModule { }
Итак, как мне удалить эти зависимости и сделать DynamicContainerComponent действительно динамичным? Думаю, я мог бы создать дополнительный модуль, который зависит от приложения и который возвращает массив dynComponents (я не знаю, как это сделать правильно), но часть DynamicModule.withComponents еще сложнее.