在environment.ts

时间:2017-05-18 14:38:28

标签: angular typescript

我希望减少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。我只是想知道这是否真的不起作用,或者我是否只是遗漏了一些东西。

3 个答案:

答案 0 :(得分:3)

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

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'
}

答案 1 :(得分:2)

由于人们表现出不止一种方法,我想我也可以采用另一种方式。

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/'

答案 2 :(得分:1)

另外,使用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