如何设置一个Angular config var来设置服务器地址?

我怎样才能做一些集中的解决scheme来存储stringAngularJS? 我已经问过关于NodeJS的类似问题 ,但我不知道如何使用Angular的相同方法,因为我已经习惯了Node。

我想到了两种方法:

1 – 设置一个angular常量

app.constant('config', { serverUrl: 'http://localhost:8080' }); 

这是我的实际解决scheme,但它的缺点是我需要每次将代码发送到云时使用服务器地址更新我的代码。

2 – 使用类似Node的process.env

我不知道如何。

3 – 使用类似require('./ config.js')

我正在考虑类似Node的方法。 不知道如何。

那么,有没有一个好的,有效的方法来完成这个?

我不认为有一个正确的答案。 我更喜欢你的第一种方法:

 app.constant('config', { serverUrl: 'http://localhost:8080' }); 

这是因为我认为node.js后端和angular度前端作为分离应用程序。 例如,我可以添加到node.js第二版的API,并将其他angular应用程序(或另一种技术中的事件)连接到新的API,但也使用旧的angular度的应用程序与以前的API版本。 总之在我看来这是比较灵活的

编辑:

所以,我需要每次上传我的Git来更新这行

我不会将configuration文件添加到存储库。 我创build了我们添加到存储库的示例configuration文件。 但实际configuration被忽略。

EDIT2:

在我的项目之一,我们使用这个模块https://www.npmjs.com/package/gulp-ng-constant从config.json构buildapp.constant

这是我们如何切换服务器的url,而不是每次重写

  var hostname = window.location.hostname; if (hostname.indexOf("our.live.url") > -1) { usedEnvironment = availableEnvironments.LIVE; } else if (hostname.indexOf("localhost") > -1) { usedEnvironment = availableEnvironments.LOCAL; } else { usedEnvironment = availableEnvironments.TEST; } switch (usedEnvironment) { case availableEnvironments.LIVE: angular.module('app') .value('apiHost', 'https://our.live.backend.com'); angular.module('app') .value('IntercomConfig', { Enabled: true, AppId: '' }); break; case availableEnvironments.TEST: angular.module('app') .value('apiHost', 'our.test.backend'); angular.module('app') .value('IntercomConfig', { Enabled: false, }); break; default: angular.module('app') .value('apiHost', 'http://localhost:8080'); angular.module('app') .value('IntercomConfig', { Enabled: false, }); }