tengo un archivo constante
export class constants { public static get API_ENDPOINT(): string { return 'https://dvelopment-server/'; } }Y lo importé a mi servicio.
private _registrationUrl = constants.API_ENDPOINT+'api/v1/register';¿Cómo puedo cambiar el punto final con el cambio de servidor? Tengo un servidor de ensayo de servidor de desarrollo y un servidor local. Quiero que la aplicación detecte el cambio de entorno.
En mi aplicación angular 1 usé envserviceprovider para esto. ¿Puedo usar lo mismo en la aplicación angular 2?
Respuesta corta: use Angular CLI . Está en etapa beta pero funciona muy bien y el equipo de Angular lo recomienda para comenzar nuevos proyectos. Con esta herramienta puedes configurar diferentes entornos. En el momento de la compilación, src/client/app/environment.ts se reemplazará por config/environment.dev.ts o config/environment.prod.ts , según el entorno CLI actual.
El entorno predeterminado es dev , pero puede generar una compilación de producción a través del indicador -prod en ng build -prod o ng serve -prod . Dado que esta es una característica nueva, puede ser un poco confuso, así que consulte esta excelente guía para obtener información adicional sobre cómo configurar entornos angulares mediante la CLI.
Espero que esto ayude.
Solo me gustaría agregar poner un poco más de luz en la respuesta proporcionada por @Cartucho. Tiene razón sobre los pasos necesarios para configurar un entorno personalizado para sus aplicaciones angulares 2. También me gustaría apoyar la opinión de que el artículo de la Guía para compilar la aplicación en diferentes entornos
Pero el artículo dado pierde un paso importante. Los pasos para configurar un entorno personalizado son los siguientes: 1) Cree un nuevo archivo denominado environment.YourEnvName.ts en la carpeta de entornos del proyecto. 2) Agregue la descripción del entorno en el objeto "entornos" en el archivo angular-cli.json .
"environments": { "source": "environments/environment.ts", "prod": "environments/environment.prod.ts", "dev": "environments/environment.dev.ts", "qa": "environments/environment.qa.ts", "YourEnvName": "environments/environment.YourEnvName.ts" }3) Una vez que haya realizado estos cambios, puede crear la aplicación para su nuevo entorno utilizando el siguiente comando.
ng build --environment=YourEnvName or ng serve --environment=YourEnvNameEspero que esta publicación sea útil para cualquier nuevo desarrollador de Angular 2.
He resuelto el problema agregando un método de clase.
export class config { public static getEnvironmentVariable(value) { var environment:string; var data = {}; environment = window.location.hostname; switch (environment) { case'localhost': data = { endPoint: 'https://dev.xxxxx.com/' }; break; case 'uat.server.com': data = { endPoint: 'https://uat.xxxxx.com/' }; break; default: data = { endPoint: 'https://dev.xxxx.com/' }; } return data[value]; } }en mi servicio
private _loginUrl = config.getEnvironmentVariable('endPoint')+'api/v1/login;