Angular Service Предоставить значение по умолчанию? - PullRequest
0 голосов
/ 04 июля 2019

Рассмотрим угловую службу, которая обертывает клиентский модуль HTTP.

export class HttpWrapperService {
  private apiKey: string;
}

Очевидно, что у него больше функций, которые не имеют значения.

Теперь мне нужно предоставить HttpWrapperService для нескольких модулей с некоторым уникальным значением по умолчанию.Это значение по умолчанию должно быть назначено частному элементу данных, т.е. private apiKey: string;


Наблюдение:

Поскольку я видел другие операции импорта со значениями по умолчанию, мне интересно, как это можно реализовать.

RouterModule.forRoot(AppRoutes),
GravatarModule.forRoot(GRAVATAR_CONFIG_TYPE1),
AngularFireModule.initializeApp(environment.firebaseConfig),
ServiceWorkerModule.register("ngsw-worker.js", {
  enabled: environment.production
})

Текущий выход

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

export class AppModule {

  constructor(){
    HttpWrapperService.register(environment.apiKeyHeaders);
    UserService.registerEndpoint(environment.apiEndpoint);
  }
}

1 Ответ

1 голос
/ 04 июля 2019

Вы можете указать значение ключа API в AppModule следующим образом:

@NgModule({
  providers: [
    { provide: 'API_KEY', useValue: '<apiKeyValue>' },
    HttpWrapperService
  ],
})
export class AppModule { }

Значение ключа API можно ввести следующим образом:

export class HttpWrapperService {
    constructor(@Inject('API_KEY') private apiKey: string) {}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...