angular - Slå ihop miljövariabler i environment.ts


Jag skulle vilja minska lite redundans i min environment.ts, eftersom många av mina env-variabler börjar med samma sak. Så vad jag ville göra är detta:

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

Snarare än:

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

Men när jag använder environment.ws_base_url får jag inte //www.myWebsite.co.uk/ws, utan undefined/ws. Jag undrade bara om detta verkligen inte fungerar eller om jag bara missar något.

Svar #1

Du kan bara deklarera en variabel utanför objektet:

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

Svar #2

dessutom bör användning av ES5 getter fungera

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)

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

Relaterade artiklar