根据文件夹结构添加代码行 - 预编译器?

Add lines of code depending on folder structure - Precompiler?

我有不同类型的对象。不过,我想在我的一个 Angular2 组件中显示所有类型。 这是我为此使用的代码:

in for-loop:
<div [ngSwitch]="Type">
    <c-test *ngSwitchCase="'Test'"></c-test>
    <c-test2 *ngSwitchCase="'Test2'"></c-test2>
    <etc>
</div>

随着时间的推移,我的应用程序可能会扩展,添加新的 "types" 个对象。由于我在不同的地方使用了上面的代码,我不想在所有这些地方为每个添加的类型添加一行。有没有一种方法可以使用类似于 C++ 预编译器的方法来遍历我的文件夹结构并相应地添加这些行?

示例:假设我有以下文件夹结构。

Objects
|- TypeA
|- TypeB
|- etc

在我的代码中,我会有这样的东西:

<div [ngSwitch]="Type">
    <precompile *ngFor="some looping through folders">    
        <"c-$FoundFolder" *ngSwitchCase="'$FoundFolder'"><"c-$FoundFolder">
    </precompile>
</div>

导致:

<div [ngSwitch]="Type">
    <c-TypeA *ngSwitchCase="'TypeA'"></c-TypeA>
    <c-TypeB *ngSwitchCase="'TypeB'"></c-TypeB>
    <etc *ngSwitchCase="'etc'"></c-etc>
</div>

我知道我想要的东西不存在于这种形式中,但是有没有一种方法可以实现类似的东西,如果有,怎么做到的?

以下方法并不完全符合您的要求。但是,基本意图是在不更改渲染视图的情况下,基于添加到应用程序的新组件在未来动态加载新组件。 angular 网站上有一篇关于此的好文章:

https://angular.io/docs/ts/latest/cookbook/dynamic-component-loader.html

就是这样,对于组件的新声明,它将保持不变,只是您需要在 entryComponent 中为添加到同一模块文件中的每个新组件添加一个额外的条目,其中声明了新组件:

entryComponents: [ HeroJobAdComponent, HeroProfileComponent ],