使用Angularjs创建与环境无关的代码

时间:2015-04-09 19:08:37

标签: angularjs

我们正在使用带有Bower的Angular和我们的堆栈的Python API。我们有多个代码运行的环境 - 开发,登台,生产等。到目前为止,我们必须手动更改前端的连接字符串,然后我们将新代码推送到它以适应它所处的环境 - 但是显然,这不是正确的做事方式。比方说,我们为前端设置了以下主机:www.something.comwww.test-something.com,它们应分别连接到apisomething.comtest-apisomething.com来提取数据。

我的目标是能够将代码部署到任何环境,而无需更改任何值。通常,我会在服务器端使用环境变量来创建所有链接,但是由于Angular在浏览器中运行,因此无法访问这些变量。所以我不确定如何继续。

我的研究提出了使用Grunt herehere的教程,但由于我们没有使用Grunt,因此无法解决问题。

我的想法是编写一个Python脚本,在"constants.js"文件所在的同一目录中手动生成app.js(必须为每个环境运行一次)并将该文件包含在git.ignore。该脚本将采用一个参数,基本上是一个单行:"var base_url = \"www.something.com\"",其中base_url的值将随传入脚本的参数而变化。这是我所得到的。

所以,问题如下:

  1. 有更好的方法吗?
  2. 如果没有,最好的方法是什么 Angular应用中可以访问base_url的值?服务,模块等?那会怎么样?

1 个答案:

答案 0 :(得分:1)

您只需使用$ location服务获取有关正在运行的应用程序的URL的信息。