根据文件夹结构添加代码行 - 预编译器?
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 ],
我有不同类型的对象。不过,我想在我的一个 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 ],