【发布时间】:2019-11-12 09:54:22
【问题描述】:
我有一个模态弹出组件。它将字符串作为输入,然后动态加载其他组件。这样我就可以拥有一个模态弹出组件,而不是为我在应用程序中需要的每个模态复制一个模态弹出代码。 问题是这会导致一个很大的 if/else 语句,我在其中根据字符串输入加载适当的组件
if (this.data.component == "ContactStaffComponent")
componentFactory = this.componentFactoryResolver.resolveComponentFactory(ContactStaffComponent);
else if (this.data.component == "DocketComponent")
componentFactory = this.componentFactoryResolver.resolveComponentFactory(DocketComponent);
else if (this.data.component == "FilingComponent")
componentFactory = this.componentFactoryResolver.resolveComponentFactory(FilingComponent);
else if (this.data.component == "ServiceListRecordComponent")
componentFactory = this.componentFactoryResolver.resolveComponentFactory(ServiceListRecordComponent);
else { }
有没有办法将字符串转换为类型?类似于 .net 反射的东西?
【问题讨论】:
-
可以使用工厂设计模式。您可以使用字符串值从该工厂返回组件。
标签: angular typescript angular7