【发布时间】:2018-08-13 12:30:07
【问题描述】:
我想在 Angular2 中创建一个组件,它将显示一个包含一些数据的表格(假设不同产品 P1 和 P2 的销售数据)。除了表格之外,我还希望允许用户在不同类型的图表之间进行选择,并根据图表选择在数据表下方的容器中显示所显示数据的图表。
我创建了一个组件(我们称之为 Main),它作为一个组件,一个显示图形类型的单选组。现在针对 10 种不同的图形类型,我为这 10 种类型创建了 10 种不同的图形组件。
方法: 我可以将所有十个组件放在主组件中,并根据用户选择显示相应的图形组件。但是这种方法成本太高,因为主组件 shadow dom 将拥有所有图形组件。如果我允许用户从一个时间范围内选择并使用绑定更新显示的图形,它也会出现问题,因为这将导致更新其他未显示的图形。
是否有任何方法可以将通用容器放入主组件中,并在主组件中注入图形组件列表,并根据用户选择将所选图形组件放入该容器中。放入容器不应破坏绑定。
总结一下,我想找到一种方法来动态地将组件放入另一个组件中。理想情况下,在复合设计模式中,在运行时确定组件应该相当容易。我无法在角度 2 中弄清楚这一点。
【问题讨论】:
-
检查动态组件加载器angular.io/docs/js/latest/api/core/…
-
谢谢,它可能对我有用,我会尝试分享一个示例 :)
-
ViewContainerRef.createComponent很久以前取代了DynamicComponentLoader。有关示例,请参见 stackoverflow.com/questions/36325212/…。
标签: angular