如何在Angular2 2.0.0 RC.5中设置全局提供程序? [英] How to set global providers in Angular2 2.0.0 RC.5?
本文介绍了如何在Angular2 2.0.0 RC.5中设置全局提供程序?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
使用NgModule的新功能时,如何设置全局提供程序?过去我可以这样做:
How do I set up global providers when using new feature that is NgModule? In the past I could do this:
bootstrap(AppComponent, [
GlobalServiceAAA,
GLOBAL_PROVIDERS_BBB
]);
使用NgModule,我们以自己的方式引导应用程序:
Using NgModule we bootstrap the app int his way:
platformBrowserDynamic().bootstrapModule(AppModule);
在这种情况下,我将我的全局服务和提供程序放在哪里(假设我不想在每个组件中都提供它们)?
where in this case I place my global services and providers (assuming I do not want to provide them in every component)?
推荐答案
有两种方法.
注意:共享功能模块可能包含您的常用服务.
1.没有共享功能模块
1. without shared feature module
@NgModule({
(...)
providers: [ // <-------
GlobalServiceAAA, GLOBAL_PROVIDERS_BBB
]
})
export class AppModule { }
2.与共享功能模块
2. with shared feature module
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { AppComponent } from './app.component';
import {SharedModule} from './shared/shared.module'; //<-------- Important
...
...
@NgModule({
imports: [ BrowserModule,
SharedModule.forRoot(), //<----------Important
HomeModule,
routing
],
declarations: [ AppComponent],
bootstrap: [ AppComponent ]
})
export class AppModule { }
shared.module.ts
import { NgModule, ModuleWithProviders } from '@angular/core';
import { CommonModule } from '@angular/common';
import { GlobalServiceAAA} from './path' //<-------- important
import { GLOBAL_PROVIDERS_BBB} from './path'; //<-------- important
@NgModule({
imports: [ CommonModule ],
declarations: [],
exports: [ CommonModule ]
})
export class SharedModule {
static forRoot(): ModuleWithProviders {
return {
ngModule: SharedModule,
providers: [ GlobalServiceAAA,GLOBAL_PROVIDERS_BBB] //<------important
};
}
}
这篇关于如何在Angular2 2.0.0 RC.5中设置全局提供程序?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文