Angular 5 – 将名称中的组件实例化为字符串

前端之家收集整理的这篇文章主要介绍了Angular 5 – 将名称中的组件实例化为字符串前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我知道如何使用ComponentFactoryResolver.resolveComponentFactory(AComponentType)初始化组件

但是该方法需要一个Type,而在我的代码中我将该类型的名称作为字符串.

在Angular API中是否有一种通过字符串解析的方法
如果没有,我如何将字符串转换为TypeScript中的Type?

如果以上都不可能,我会使用地图,但它不是那么简单,因为我需要实例化的组件将来自远程获取的UMD角度组件库.

解决方法

您可以执行以下操作:

const classesMap = {
  AComponentType: AComponentType,BComponentType: BComponentType
}

然后:

CreateDynamicComponent(typeName: string) {
    ...
    const componentFactory = ComponentFactoryResolver.resolveComponentFactory(classesMap[typeName].prototype.constructor)
    ...
}

猜你在找的Angularjs相关文章