ComponentFactoryResolver"无法解决..."的所有参数 - 但提供者在场

时间:2017-07-05 16:35:33

标签: angular

我在angular@4.1.3面临一个奇怪的问题。在我们的大型应用程序中,我们必须使一些组件可自定义,即允许用户在主页上动态添加和删除它们。这些组件在根目录导入的NgModule中声明,并且今天正常工作(没有动态加载)。

然后我开始使用ngComponentOutlet指令,但我发现这些组件无法动态构建,原因是:

Can't resolve all parameters for XXXComponent: ([object Object], ?, [object Object], ?, [object Object], ?)

缺少参数的真正奇怪的是App根模块中提供的服务,甚至更奇怪的是,我实际上可以通过Injector中的HomePageComponent来解决这些问题:

// This works!
const foo = this.injector.get(ProfileService);

ComponentFactoryResolver也是如此:

// This yield the same error as above...
const widgetComponent = this.componentFactoryResolver.resolveComponentFactory(XXXComponent);

我的猜测这与儿童注射器有关,但我不明白为什么似乎没有考虑根部注射器...

有什么想法吗?

0 个答案:

没有答案