如何在Angular中指定自定义环境变量?

时间:2017-08-08 08:37:54

标签: angular angular-cli

我想使用另一个环境变量。就我而言test。原因是我想为我的集成测试注入一个http拦截器。此拦截器应仅返回具有预定义数据的模拟响应,并仅用于测试。

是否有正式的角度方式?

所以我想要这个app.module.ts

  
    import { environment } from '../environments/environment';
    // ...

    export function CustomHttpProvider (backend: XHRBackend, options: RequestOptions) {
      return new HttpService(backend, options);
    }

    export function FakeHttpProvider (backend: XHRBackend, options: RequestOptions) {
      return new FakeHttpService(backend, options);
    }

    const HttpProvider = environment.test ? FakeHttpProvider : CustomHttpProvider;

    @NgModule({
      imports: [
        BrowserModule,
        HttpModule,
        BrowserAnimationsModule,

        // ... my modules + routing here
      ],
      declarations: [AppComponent],
      providers: [
        {
          provide: Http,
          useFactory: HttpProvider,
          deps: [XHRBackend, RequestOptions]
        }
      ],
      bootstrap: [AppComponent]
    })
    export class AppModule {}

1 个答案:

答案 0 :(得分:1)

Angular CLI有一个命令行参数--environment,如果你设置了一些类来支持它,你可以这样做。

请参阅此blog post

This answer提供了与您的问题相关的大量信息。

作为旁注。对于角度1.5,我使用了this plugin