没有ComponentLoaderFactory的提供者

Dre*_*208 9 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!
Run Code Online (Sandbox Code Playgroud)

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>;
}
Run Code Online (Sandbox Code Playgroud)

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

如果我需要发布任何其他内容,请告诉我.

Ric*_*sen 18

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

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

  • 是的,我遇到了同样的问题.在您的测试规范中,您需要在导入部分中包含`ModalModule.forRoot()`. (2认同)

小智 6

例如,你正在使用模态的ngx-bootstrap然后你应该在spec.ts中导入模块,如: -

ModalModule.forRoot()
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助


mru*_*ova 5

在您的 spec.ts 文件中导入 modal 模块,如下所示:

import { ModalModule } from 'ngx-bootstrap';
....
imports: [ModalModule.forRoot()],
Run Code Online (Sandbox Code Playgroud)