如何避免一个Angular库中出现多个服务的实例?(用懒加载模块)

问题描述 投票:0回答:1

我有一个非常大的项目,在angular中,我正在将核心迁移到一个库中。问题来了,当我的服务(在库中)被导出。

public static forRoot(): ModuleWithProviders {
    return {
      ngModule: NbopflModule,
      providers: [
        ...ALL_PIPES,
        ...ALL_SERVICES
      ]
    };
  }

而服务(所有的)都有。

@Injectable({
  providedIn: 'root'
})

我在appModule中加载库(forRoot),然后在lacy加载模块中加载相同的库(有些像lacy加载的库,有些在项目中)

我在构造函数中添加了一个 console.log,并且在每个模块加载的时候都会出现这个消息,生成多个实例。我不想重构所有的代码,使所有的variabe statics。

Anyone Knows about any way to force a single instance of a service imported by a library?

非常感谢

angular service code-injection angular-library multiple
1个回答
0
投票

我得到了解决方案:S:S

它只是删除了所有的provider声明(不在forRoot,不在模块provider......),只是用provideIn:'root',并在public-api文件中导出,工作:)

© www.soinside.com 2019 - 2024. All rights reserved.