Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 11将URL注入服务_Angular_Typescript_Dependency Injection_Angular Injector - Fatal编程技术网

Angular 11将URL注入服务

Angular 11将URL注入服务,angular,typescript,dependency-injection,angular-injector,Angular,Typescript,Dependency Injection,Angular Injector,我有两层服务,希望使用Angular(版本11)注入重构它们 一个基本服务,它调用后端,并具有一系列关于如何处理数据和安全性的逻辑。以下是构造器: 具体的服务,基本上是配置新的基本服务,并将组件的所有调用委托给基本服务: 问题:由于每个特定的服务实际上做的不多,如何使用注入来重构上述设置?在父模块上为API\u BASE\u URL创建一个提供程序 export function getBaseUrl(): string { return AppConsts.baseUrl; } @NgM

我有两层服务,希望使用Angular(版本11)注入重构它们

  • 一个基本服务,它调用后端,并具有一系列关于如何处理数据和安全性的逻辑。以下是构造器:
  • 具体的服务,基本上是配置新的基本服务,并将组件的所有调用委托给基本服务:

  • 问题:由于每个特定的服务实际上做的不多,如何使用注入来重构上述设置?

    在父模块上为
    API\u BASE\u URL创建一个提供程序

    export function getBaseUrl(): string {
      return AppConsts.baseUrl;
    }
    
    @NgModule({
      declarations: [AppComponent],
      imports: [BrowserModule],
      providers: [{ provide: API_BASE_URL, useFactory: getBaseUrl }],
       bootstrap: [AppComponent]
    })
    export class AppModule {}
    
    然后定义一个具有静态属性的AppConsts类

    export class AppConsts {
      static baseUrl = "your_api_base_url"; 
    }
    
    您只需执行
    constructor(public url:string)
    export function getBaseUrl(): string {
      return AppConsts.baseUrl;
    }
    
    @NgModule({
      declarations: [AppComponent],
      imports: [BrowserModule],
      providers: [{ provide: API_BASE_URL, useFactory: getBaseUrl }],
       bootstrap: [AppComponent]
    })
    export class AppModule {}
    
    export class AppConsts {
      static baseUrl = "your_api_base_url"; 
    }