我怎么能有一个全局提供程序,只是初始化一次。所以我有以下提供程序
@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提供程序在整个应用程序中只初始化一次?
所以这里的问题是我在子模块中声明了提供者。即使我只在子模块中使用提供程序,它仍然在每次注入时初始化。所以我不得不在主模块中声明它,它按预期工作。