加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angularjs – Angular js读取环境变量

发布时间:2020-12-17 07:26:29 所属栏目:安全 来源:网络整理
导读:我试图在http get调用中读取环境变量 $http.get('http://' + $location.host() + ':8080/api') 我希望能够读取environmen变量并将其用作上面API调用中的http rest服务器,如下所示 $http.get('environmental_variable ':8080/api') 注意:我不知道环境变量直
我试图在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);
    });
});

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读