Общий модуль провайдера 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 (поделиться как singleton) в другой модуль, который будет использовать myService.

Сценарий - компонент A загружается, например. компонент B динамически

Один мой компонент динамически загружает другое представление компонента, используя viewContainerRef.createComponent (componentFactory), кажется, создается новый экземпляр CoreModule, но мне нужно, чтобы это был синглтон или служба, чтобы быть синглтоном, когда он вводится в компонент A, но компонент B, похоже, создает новые экземпляры, у меня уже установлено значение при загрузке компонента приложения.

Это невозможно, если вы хотите поделиться всем модулем, вы должны установить его в качестве поставщика в модуль приложения.

Shohel 25.04.2018 17:49

Этот CoreModule загружается лениво или сразу же загружается и импортируется в app.module.ts?

Kevin 25.04.2018 20:49

У меня CoreModule загружен в app.module.ts и CoreModule.forRoot ()

user3656360 25.04.2018 20:56

В итоге я сделал myService одноэлементным (как статическим), чтобы на него можно было легко ссылаться во всем приложении. Общий модуль и т. д. Не работает с модулем отложенной загрузки, поскольку они получают свой собственный контекст, и любой поставщик будет инициализирован

user3656360 30.04.2018 23:11
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Angular и React для вашего проекта веб-разработки?
Angular и React для вашего проекта веб-разработки?
Когда дело доходит до веб-разработки, выбор правильного front-end фреймворка имеет решающее значение. Angular и React - два самых популярных...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
Мое недавнее углубление в Angular
Мое недавнее углубление в Angular
Недавно я провел некоторое время, изучая фреймворк Angular, и я хотел поделиться своим опытом со всеми вами. Как человек, который любит глубоко...
Освоение Observables и Subjects в Rxjs:
Освоение Observables и Subjects в Rxjs:
Давайте начнем с основ и постепенно перейдем к более продвинутым концепциям в RxJS в Angular
0
4
247
0

Другие вопросы по теме