我想使用另一个环境变量。就我而言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 {}
答案 0 :(得分:1)
Angular CLI有一个命令行参数--environment,如果你设置了一些类来支持它,你可以这样做。
请参阅此blog post
This answer提供了与您的问题相关的大量信息。
作为旁注。对于角度1.5,我使用了this plugin。