最新工厂提供器写法,老师讲的已经编译错误,请更正
来源:4-4 使用工厂和值声明提供器

慕粉18521598093
2017-09-25
export function httpFactory(){ let logger = new LoggerService(); let dev = Math.random() > 0.5; if(dev){ return new StockService(logger); }else{ return new AnotherStockService(logger); } } 最新工厂提供器写法,老师讲的已经编译错误,请更正
1回答
-
慕粉18521598093
提问者
2017-09-25
import {BrowserModule} from "@angular/platform-browser";
import {NgModule} from "@angular/core";
import { AppComponent } from './app.component';
import { StockComponent } from './stock/stock.component';
import { StockService } from './shared/stock.service';
import { Stock2Component } from './stock2/stock2.component';
import {LoggerService} from "./shared/logger.service";
import {AnotherStockService} from "./shared/another-stock.service";
export function httpFactory(logger:LoggerService,isDev){
//let logger = new LoggerService();
//let dev = Math.random() > 0.5;
if(isDev){
return new StockService(logger);
}else{
return new AnotherStockService(logger);
}
}
export function isDev():boolean{
let IS_DEV_ENV:boolean;
return IS_DEV_ENV;
}
@NgModule({
declarations: [
AppComponent,
StockComponent,
Stock2Component,
],
imports: [
BrowserModule
],
/**
* 实例化此服务
* StockService 工厂提供器需实现方法 useFactory 可以传入参数注入另一个服务LoggerSevice
*/
providers: [
{provide:StockService,useFactory:httpFactory,deps:[LoggerService,isDev]},
LoggerService,{provide:isDev,useValue:true}],
bootstrap: [AppComponent]
})
export class AppModule { }00
相似问题