没有ComponentLoaderFactory的提供者

时间:2017-01-19 18:02:40

标签: angular

我更新了我的angular2项目,之前它工作正常。但是现在我收到以下错误:

Error: Uncaught (in promise): Error: Error in ./RibbonComponent class 
RibbonComponent - inline template:4:5 caused by: No provider for 
ComponentLoaderFactory!
Error: Error in ./RibbonComponent class RibbonComponent - inline 
template:4:5 caused by: No provider for ComponentLoaderFactory!

ComponentLoaderFactory

export declare class ComponentLoaderFactory {
    private _componentFactoryResolver;
    private _ngZone;
    private _injector;
    private _posService;
    constructor(componentFactoryResolver: ComponentFactoryResolver, ngZone: NgZone, injector: Injector, posService: PositioningService);
    /**
     *
     * @param _elementRef
     * @param _viewContainerRef
     * @param _renderer
     * @returns {ComponentLoader}
     */
    createLoader<T>(_elementRef: ElementRef, _viewContainerRef: ViewContainerRef, _renderer: Renderer): ComponentLoader<T>;
}

我不确定还有什么要发布。我通过ncuncu -u更新了我的package.json。我想我发现了一个错误。我确实在GitHub上发现了一个帖子,但它没有帮助。 GitHub

如果我需要发布任何其他信息,请告诉我。

4 个答案:

答案 0 :(得分:15)

不确定您使用的是哪些库,但在使用 ng2-bootstrap 时出现此错误。从此页面获得解决方案Ref angular-2-with-ng2-bootstrap-and-karma-testing-final-adventure

基本上,问题在于导入需要调用.forRoot()方法。也许在RibbonComponent或其他导入的库中寻找类似的东西。

答案 1 :(得分:5)

例如,您正在使用ngx-bootstrap的模态,那么您应该在spec.ts中导入模块,如: -

ModalModule.forRoot()

希望这有帮助

答案 2 :(得分:0)

像这样在您的spec.ts文件中导入模式模块:

import { ModalModule } from 'ngx-bootstrap';
....
imports: [ModalModule.forRoot()],

答案 3 :(得分:0)

就我而言,我的测试缺少此导入:

TooltipModule.forRoot()

奇怪的是,对于其他模块,例如 ModalModule,我得到了一个正确的错误,指出我缺少的提供程序,但不是这个。