【问题标题】:Concatenate env variables in environment.ts在 environment.ts 中连接环境变量
【发布时间】:2017-05-18 14:38:27
【问题描述】:

我想减少我的environment.ts 中的一些冗余,因为我的许多env 变量都以相同的开头。所以我想做的是:

export const environment = {
    base_url: '//www.myWebsite.co.uk/',
    ws_base_url: this.base_url + 'ws',
    download_base_url: this.base_url + 'download'
}

而不是:

export const environment = {
    base_url: '//www.myWebsite.co.uk/',
    ws_base_url: '//www.myWebsite.co.uk/ws',
    download_base_url: '//www.myWebsite.co.uk/download'
}

但是当我使用environment.ws_base_url 时,我得到的不是//www.myWebsite.co.uk/ws,而是undefined/ws。我只是想知道这是否真的不起作用,或者我只是错过了一些东西。

【问题讨论】:

  • js 是多么的愚蠢令人难以置信。该死的谢谢我找到了这个

标签: angular typescript


【解决方案1】:

你可以在对象之外声明一个变量:

const BASE_URL = '//www.myWebsite.co.uk/';

export const environment = {
    base_url: BASE_URL,
    ws_base_url: BASE_URL + 'ws',
    download_base_url: BASE_URL + 'download'
}

【讨论】:

  • 谢谢,js 是一门可怕的语言
【解决方案2】:

另外,使用 ES5 getter 应该可以工作

const environment = {
    base_url: '//www.myWebsite.co.uk/',
    get ws_base_url() {
      return this.base_url + 'ws';
    },
    get download_base_url() { 
      return this.base_url + 'download'
    }
}

console.log(environment)

演示:https://jsbin.com/gujecaleru/edit?js,console

【讨论】:

    【解决方案3】:

    由于人们展示了不止一种方法来做到这一点,我想我不妨添加另一种方法。

    environment = {}
    environment.base_url= '//www.myWebsite.co.uk/'
    environment.ws_base_url= environment.base_url + 'ws'
    environment.download_base_url= environment.base_url + 'download'
    

    就像我在您的第一个代码中看到的那样,您的环境声明中似乎缺少一个“,”。在声明 base_url 之后:

    base_url: '//www.myWebsite.co.uk/'
    

    【讨论】:

      猜你喜欢
      • 2018-12-15
      • 2018-12-31
      • 2018-08-05
      • 2016-09-19
      • 1970-01-01
      • 1970-01-01
      • 2021-12-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多