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提供程序在整个应用程序中只初始化一次?

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

最新更新