如何在Angular2 2.0.0 RC.5中设置全局提供程序?

前端之家收集整理的这篇文章主要介绍了如何在Angular2 2.0.0 RC.5中设置全局提供程序?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在使用NgModule的新功能时,如何设置全局提供程序?在过去,我可以这样做:

bootstrap(AppComponent,[
   GlobalServiceAAA,GLOBAL_PROVIDERS_BBB
]);

使用NgModule我们以他的方式引导应用程序:

platformBrowserDynamic().bootstrapModule(AppModule);

在这种情况下,我放置我的全局服务和提供者(假设我不想在每个组件中提供它们)?

解决方法

有两种方法可以做到这一点.

注意:共享功能模块可能包含您的公共服务.

1.没有shared feature module

@NgModule({
  (...)
  providers: [ // <-------
    GlobalServiceAAA,GLOBAL_PROVIDERS_BBB
  ]
})
export class AppModule { }

2.与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
    };
  }
}

猜你在找的Angularjs相关文章