Angular 2 RC 5 全球供应商

Angular 2 RC 5 global provider

我怎样才能拥有一个只初始化一次的全局提供程序。 所以我有以下供应商

@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],
})

导出class共享模块{

static forRoot(): ModuleWithProviders {
    return {
        ngModule: SharedModule,
        providers: [ApiRequest]
    };
}

代码有效,这里的问题是每次我更改路由时都会初始化 ApiRequest 构造函数,因此每个页面都会更改。我怎样才能使 ApiRequest 提供程序在整个应用程序中只初始化一次?

所以这里的问题是我在子模块中声明提供者。即使艰难,我也只在子模块中使用提供程序,它仍在每次注入时初始化。所以我不得不在主模块中声明它并且它按预期工作。