angular - 从单个模板角度动态创建组件
问题描述
我想知道是否有一种角度方法,可以在运行时从通用模板生成组件?
例如,如果我有一个小部件仪表板,后端服务器告诉我渲染了多少小部件,有没有办法为每个小部件创建一个组件并将它们作为子组件添加到父仪表板组件?
这甚至可能不是最好的方法,但出于好奇,我想知道这是否可能,如果是,这是否是一个好习惯。
我已经查看了角度的动态组件,但是您有一个预定义的组件(如模态),您可以在运行时加载/卸载它。
编辑:如果我需要显示小部件,我可以使用 ngFor/ngIf 构造,我想要组件的原因是我想做一堆其他任务,比如根据它是哪个小部件设置可观察对象。
解决方案
好吧,最简单的解决方案是拥有一些固定的小部件,并使用来自后端的数据来渲染它们*ngFor
,*ngIf
即使这并不是一个完美的解决方案。
<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可用于在运行时动态加载组件,如此处所述。自己没有尝试过,所以我无法提供示例,但指南上有示例代码,也许它符合您的需求。
推荐阅读
- python - 同时对两列进行自定义排序 Pandas
- python - 为什么 Python 的时间函数(如 perf_counter_ns)的解析会出现不一致?
- qt - 如何在不删除文本的情况下在网格中显示 QListWidgetItems?
- java - 如何使用 PowerMockito 模拟私有方法?
- reactjs - 如何将我的 API URL 代理到其他代理
- angular - 自定义异步验证器,用于验证来自后端 api 的电子邮件,称为在页面加载时多次调用
- arrays - 如何将 R 中的向量对象插入到双精度 [] 类型的 PostgreSQL 列中,该列是一个浮点数组
- android - 当我尝试使用 FusedLocationProviderClient 时出现错误
- tensorflow - ValueError:一个操作对梯度有“无”。在 Keras 中实现自定义损失函数时
- multithreading - 如何检测线程是否因互斥锁而阻塞