我如何才能拥有一次初始化的全局提供程序。 所以我有以下提供者
@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提供程序初始化一次?
答案 0 :(得分:0)
所以这里的问题是我在子模块中声明了提供者。即使很难我只在子模块中使用提供程序,它仍然在每次注入时初始化。所以我必须在主模块中声明它,它按预期工作。