2016-08-12 4 views
3

Как настроить глобальных поставщиков при использовании новой функции NgModule? В прошлом я мог бы сделать это:Как установить глобальных поставщиков в Angular2 2.0.0 RC.5?

bootstrap(AppComponent, [ 
    GlobalServiceAAA, 
    GLOBAL_PROVIDERS_BBB 
]); 

Использование NgModule мы грузиться приложение Int свой путь:

platformBrowserDynamic().bootstrapModule(AppModule); 

, где в этом случае я помещаю свои глобальные услуги и поставщиков (предполагая, что я не хочу предоставлять их в каждом компоненте)?

ответ

3

Существует два способа сделать это.

ПРИМЕЧАНИЕ. Общий модуль функций может содержать ваши общие службы.

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 
    }; 
    } 
} 
4

Необходимо указать их в атрибуте providers вашего NgModule.

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