Angular 2 RC 5全球供应商

时间:2016-09-06 12:31:44

标签: angular angular2-routing angular2-providers

我如何才能拥有一次初始化的全局提供程序。 所以我有以下提供者

@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 个答案:

答案 0 :(得分:0)

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