首页 > 解决方案 > 提供者共享模块 Angular 4

问题描述

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

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 似乎正在创建一个新实例,我在应用组件加载时已经设置了值。

标签: angular

解决方案


推荐阅读