9、angular学习第七天(依赖注入的工厂方式和值注入)

在使用提供器时可以使用工厂方式来声明
另外可以直接提供一个值类型的提供器。
具体使用方式如下

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 { }

你可能感兴趣的:(9、angular学习第七天(依赖注入的工厂方式和值注入))