根据用户输入角度5+加载动态组件

时间:2019-02-28 15:29:29

标签: angular dynamic components

我有一个应用程序,用户可以在一页上做出决定(我正在使用cdk stepper),当他们进入下一页时,我想根据用户选择的内容动态加载不同的组件。

将选择视为不同的表单组成部分,然后下一页将基于这些选择显示其中一个或多个。我不想只在html中使用ngIf,因为这些表格中可能有100多种形式,因此我希望用户所做的每个选择都具有与之关联的变量(元数据),该变量可用于动态加载任何数字下一个屏幕上的组件。

为此,我查看了CDK Portal,但我想知道是否有更好的解决方案。如果没有,我不确定CDK Portal将如何工作,我认为每种表格都必须扩展一些基本组件,我不确定100%。我相信将设置打字稿以将组件加载到门户网站主机中。让我知道是否有人对此有建议或疑问。

1 个答案:

答案 0 :(得分:0)

基本上,您仍然需要将if / else逻辑放在其他地方以使其起作用。解决这个问题的第一种方法是制作一个包含两列的选择组件表,即组件名称和一个布尔值,以使其被选中:

[(A, false), (B, false)]

您仍然需要将下一步的所有组件放入HTML文件,例如:

<a *ngIf="isComponentSelection(a)"></a>
<b *ngIf="isComponentSelection(b)"></b>

isComponentSelection中的逻辑是知道是否应该显示此组件,它将与我们上面制作的表进行核对。

在第一块板上,您只需要将带有您所拥有组件名称的复选框列表绑定到表中即可。