angularjs – Angular js读取环境变量

前端之家收集整理的这篇文章主要介绍了angularjs – Angular js读取环境变量前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_404_0@ 我试图在http get调用中读取环境变量
$http.get('http://'  + $location.host() + ':8080/api')

我希望能够读取environmen变量并将其用作上面API调用中的http rest服务器,如下所示

$http.get('environmental_variable ':8080/api')

注意:我不知道环境变量直到运行时因此我不能将值作为常量使用

浏览器中没有环境变量这样的东西.

$location服务始终会获取您当前的URL.我想你的API可能存在于不同的主机上.

通过将配置存储在Angular常量中,可以模拟环境变量.

app.constant('env',{
  API_URL: "http://someurl.com:8080/api"
});

然后,您可以将此常量注入其他提供程序.

app.controller('MyController',function($http,env) {  
  $http.get(env.API_URL);
});

这是best practices with constants上的一篇不错的文章.本文赞成不使用常量,因为能够修改配置而不必重建代码是有用的.

我通常处理这个的方法是将所有实例配置细节移出到config.json文件,然后在我引导我的应用程序时用$http加载它.

例如,您可能有这样的配置文件.

{
  apiUrl: "http://someurl.com:8080/api"
}

然后加载它的Angular服务.

app.service('Config',function($http) {
  return function() {
    return $http.get('config.json');
  };
});

然后其他服务可以获得承诺,这将在解析时公开配置.

app.controller('MyController',Config) {
  Config()
    .then(function(config) {
      $http.get(config.apiUrl);
    });
});

猜你在找的Angularjs相关文章