且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

如何动态覆盖Angular2可注入服务?

更新时间:2021-08-16 06:20:20

您可以像这样在bootstrap中用useClass覆盖Angular2 Service可注入服务:

You can overwritte an Angular2 Service injectible service with useClass in bootstrap like that :

    import {provide} from '@angular/core';

    const IS_ENV_DEV = true; //Put this constant in your config maybe

    bootstrap(App, [
      provide(RaceService, {useClass: IS_ENV_DEV ? MockHttpRequestService : HttpRequestService})
    ])

或直接在使用http服务的组件中

Or directly in your Components which uses your http service

@Component({
   selector: 'my-comp',
   providers: [provide(HttpRequestService, {useClass: MockHttpRequestService})],
   template: `<strong>I use a mocked service</strong>`
})
export class MyComponent {

  constructor(private httpRequestService: HttpRequestService) {
    //Faker !
  }
}

我希望此回复对您有所帮助:)

I hope this response is helpful :)