我想知道是否有一种角度方式,一种可以在运行时从一般模板生成组件?
例如,如果我有一个小部件仪表板,后端服务器告诉我有多少小部件被渲染,有没有办法为每个小部件创建一个组件并将它们作为子元素添加到父仪表板组件?
这甚至可能不是最好的方法,但出于好奇,我想知道是否可能,如果可能,这是否是一个好习惯。
我已经在角度中查看了动态组件,但是您可以在运行时加载/卸载预定义组件(如模态)。
编辑:如果我需要显示小部件,我可以使用ngFor / ngIf构造,我想要组件的原因是我想做一堆其他任务,比如基于的设置observables它是哪个小部件。
答案 0 :(得分:0)
嗯,最简单的解决方案是使用一些固定的小部件,然后使用后端的数据和*ngFor
以及*ngIf
来渲染它们,即使这不是一个美丽的解决方案。< / p>
<div class='dashboard'>
<ng-content *ngFor='let widget of widgets'>
<ng-content *ngIf='widget.type == 1'><app-widget1></app-widget1></ng-content>
....
</ng-content>
</div>
还有ComponentFactoryResolver可用于在运行时动态加载组件,如here所述。 Haven没有尝试过,所以我无法提供示例,但指南中有示例代码,可能符合您的需求。