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 ответ

Решение

Итак, проблема в том, что я объявлял провайдера в подмодуле. Даже когда я использовал провайдера только в подмодуле, он все еще инициализировался при каждой инъекции. Поэтому я должен был объявить его в главном модуле, и он работает как положено.

Другие вопросы по тегам