从 Angular 5 中的组件实例获取角度类型<>



首先,我想说清楚,我想要的是组件的Angular Type实例,而不是该组件的TypeScript定义。

上下文如下:我在一个服务中,我在输入中接收一个组件的实例(HomeComponent和指定的所有组件属性)。我还可以访问ViewContainerRefTemplateRef。但是,我没有找到任何可以传递给resolveComponentFactory来获取对象的新实例的内容。

我试着:

component = *component instance*
componentFactoryResolver.resolveComponentFactory(component)

但是会抛出以下错误:

没有找到[object object]的组件工厂。你把它添加到@NgModule.entryComponents了吗?

显然组件是正确导入的(我有它的一个实例!)。

我尝试了不同的组合,结果相同,但我仍然无法得到Angular想要的Type实例。

我先验地不知道可能的组件列表,所以我不能在服务中使用映射或导入它们。我怎样才能取得所需的实例?

我目前使用的是Angular5,所以我仍然需要ComponentFactoryResolver。

通过实验,我发现Angular类型实例实际上是一个表示组件构造函数的字符串。

由于这个原因,它很简单:

componentFactoryResolver.resolveComponentFactory(component.constructor)

相关内容

最新更新