【问题标题】:Angular 2 - How to have different values of a var/const for different environments?Angular 2 - 如何为不同的环境设置不同的 var/const 值?
【发布时间】:2016-04-08 19:58:08
【问题描述】:

我正在开发一个 Angular 2/Ionic 2 + JEE 7 项目,我有一个非常具体的场景:

我有一个 httpClient 层,它封装了对后端的每个调用,有一个名为 REST_BASE_PATH 的常量,我想在开发环境中指向我的本地主机,在生产环境中指向特定地址。

也就是说,我想知道实现这一目标的最佳和最自动的方法是什么..

【问题讨论】:

    标签: dependency-injection typescript ionic-framework angular


    【解决方案1】:

    您可以定义一个自定义请求选项来集中处理:

    export class AppRequestOptions extends BaseRequestOptions {
      constructor(private @Inject('webApiBaseUrl') webApiBaseUrl:string) {
      }
    
      merge(options?:RequestOptionsArgs):RequestOptions {
        options.url = this.webApiBaseUrl + options.url;
        return super.merge(options);
      }
    }
    

    您注入的webApiBaseUrl 值可以在引导您的应用程序时定义:

    bootstrap(AppComponent, [
      HTTP_PROVIDERS,
      provide('webApiBaseUrl', { useValue: 'https://bookapi.apispark.net/v1' })
    ]);
    

    使用生产环境的值打包应用程序时,您需要更新变量。

    这里有一个关于包装的问题,可以在这个级别上为您提供帮助:

    【讨论】:

    • 我看不出这个解决方案如何清楚地显示 Marcos 要求的环境开发/生产解决方案。
    猜你喜欢
    • 2014-03-17
    • 1970-01-01
    • 2018-10-03
    • 1970-01-01
    • 2017-07-15
    • 2018-09-21
    • 2019-02-18
    • 1970-01-01
    相关资源
    最近更新 更多