Angular项目之间共享服务的最佳实践



我知道创建图书馆是项目之间共享常见代码的推荐方法,但有人说您应该只存储无状态和独立服务。

我正在从事的两个项目是同一网站的两个方面。
一个是客户面对的,另一个是为了获得所有统计,管理工具等。

许多部分都不同,但有些则使用相同的实体。
例如,如果我需要获取商店列表,我将有一些代码来构建请求并将其发送给后端。但是两个项目的代码都是相同的。

由于代码取决于当前的环境文件(由于不同的API URL),因此将其放在库中没有意义。

我还有其他选项,还是可以有重复的位和零件?

在库中(假设'my-lib')您必须实现将提供服务的模块:

@NgModule({})
export class SomeServiceModule {
  static forRoot(): ModuleWithProviders {
    return {
      ngModule: SomeServiceModule,
      providers: [
        { provide: SomeService, useClass: SomeService }
      ]
    };
  }
}

,您的应用将像这样使用:

import { SomeServiceModule } from 'my-lib';
@NgModule({
  imports:      [ BrowserModule, FormsModule, SomeServiceModule.forRoot() ],
  declarations: [ AppComponent ],
  bootstrap:    [ AppComponent ]
})
export class AppModule { }

请参阅文档以获取更多信息和Stackblitz源代码

最新更新