提供者共享模块角度4

时间:2018-04-25 15:44:07

标签: angular

我有一项服务被设置为共享模块的一部分,例如

export class MyService { 
    construct() { }...
}

export class CoreModule {

    constructor(@optional() @SkipSelf() core: CoreModule)
    {
        if (core)
        { 
            throw new Error('Only one instances')
        }
    }

    static forRoot() : ModuleWithProviders {
        return{
            ngModule: CoreModule,
            providers: [MyService]
        };
    }
}

我想将此CoreModule(共享为单例)注入将使用myService的不同模块。

场景 - 组件A正在加载,例如组件B动态

我的一个组件是动态加载另一个组件视图,使用viewContainerRef.createComponent(componentFactory),它似乎创建了一个新的CoreModule实例,但我需要将它作为单例或服务作为单例,当它被注入到组件A中,但组件B似乎正在创建一个新实例,我已经在应用程序组件加载时设置了值。

0 个答案:

没有答案