如何在Angular2 2.0.0 RC.5中设置全局提供程序? [英] How to set global providers in Angular2 2.0.0 RC.5?

查看:74
本文介绍了如何在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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆