在使用提供器时可以使用工厂方式来声明
另外可以直接提供一个值类型的提供器。
具体使用方式如下
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppComponent } from './app.component';
import { Product1Component } from './product1/product1.component';
import {ProductService} from "./shard/product.service";
import { Product2Component } from './product2/product2.component';
@NgModule({
declarations: [
AppComponent,
Product1Component,
Product2Component
],
imports: [
BrowserModule
],
providers: [{
provide:ProductService,
useFactory:(logger:LoggerService,appConfig) =>{
if(appConfig.isDev){
return new ProductService(logger);
}else{
return new Product2Service(logger);
}
},
deps:[LoggerService,"APP_CONFIG"]
},LoggerService,{
provide:"APP_CONFIG",userValue:{isDev,false}
}],
bootstrap: [AppComponent]
})
export class AppModule { }
网友评论