Javascript 如何根据angular 4中的用户输入动态触发不同的后端服务

Javascript 如何根据angular 4中的用户输入动态触发不同的后端服务,javascript,html,angular,Javascript,Html,Angular,根据用户从UI(prod、dev、qa)输入的信息,我想选择不同的后端env并触发相应的后端api。我有一个家庭组件。从那里,我使用下拉菜单捕获用户env。然后将数据传递给服务,但我无法动态更改env变量值 主组件HTML <select #tbchange (change)="OntbChange($event.target.value)"> <option value="choose">Select</option> <option valu

根据用户从UI(prod、dev、qa)输入的信息,我想选择不同的后端env并触发相应的后端api。我有一个家庭组件。从那里,我使用下拉菜单捕获用户env。然后将数据传递给服务,但我无法动态更改env变量值

主组件HTML

<select #tbchange (change)="OntbChange($event.target.value)">
  <option value="choose">Select</option>
  <option value="a">a</option>
  <option value="b">b</option>
  <option value="c">c</option>
</select>
帆船服务

import {Injectable} from '@angular/core';
import {Http} from '@angular/http';
import {LogService} from './log.service';
import {environment} from '../../environments/environment';
import {ApiService} from './http/api.service';
import 'rxjs/add/operator/map';

export const SERVICE_AUDIENCE = 'a';

@Injectable()
export class SailsService extends ApiService {
  constructor(http: Http,
    log: LogService) {
    if (!environment.services || !environment.services[SERVICE_AUDIENCE]) {
      `enter code here`throw new Error('environment.service for the `enter code here`LabApiService is `enter `enter code here`enter code here`code here`missing');
        }
        super(SERVICE_AUDIENCE, http, log);
      }

  getData(uuid, env) {
    return this
      .get(`/api/connection/xxx?uuid=${uuid}&env=${env}`)
      .toPromise()
  }
环境技术

export const environment = {
  production: false,
  debug: {
    apiCalls: '*'
  },
  services: {
    'a': 'http://xxxx:8000',
    'b': 'http://localhost:1337',
    'c': 'xxxxxxx:9000'
  }
};

我有一个API服务,其中编写了低级URL连接和REST方法。我面临的问题是,在对用户API触发器调用
getData
函数之前,构造函数正在初始化并存储
export const SERVICE_audition='a'的值。不知何故,我必须根据用户选择的env动态更改
SERVICE\u audition
的值,并触发不同的env字符串。我如何才能做到这一点?

所以我的评论是,这种设置有点不合适。通常情况下,应用程序的环境是完全不同的版本,而不是用户可以选择的,所以我的评论是,这个设置有点不合适。通常情况下,环境是应用程序的完全不同版本,用户无法选择
export const environment = {
  production: false,
  debug: {
    apiCalls: '*'
  },
  services: {
    'a': 'http://xxxx:8000',
    'b': 'http://localhost:1337',
    'c': 'xxxxxxx:9000'
  }
};