Angular 2 RC 5 глобальный провайдер
Как я могу иметь глобального поставщика, который инициализируется только один раз. Итак, у меня есть следующий поставщик
@Injectable()
export class ApiRequest {
http: Http;
constructor(@Inject(Http) http) {
console.log('Test');
}
}
А потом общий модуль
@NgModule({
imports: [BrowserModule,
HttpModule],
declarations: [ControlMessage, InfiniteScroll],
entryComponents: [ControlMessage],
providers: [ApiRequest],
exports: [ControlMessage, InfiniteScroll],
})
класс экспорта SharedModule {
static forRoot(): ModuleWithProviders {
return {
ngModule: SharedModule,
providers: [ApiRequest]
};
}
Код работает, проблема в том, что конструктор ApiRequest инициализируется каждый раз, когда я меняю маршрут, поэтому каждая страница меняется. Как сделать так, чтобы провайдер ApiRequest инициализировался всего один раз во всем приложении?
1 ответ
Решение
Итак, проблема в том, что я объявлял провайдера в подмодуле. Даже когда я использовал провайдера только в подмодуле, он все еще инициализировался при каждой инъекции. Поэтому я должен был объявить его в главном модуле, и он работает как положено.