在AngularJS中重新加载动态JSON配置

时间:2018-01-25 10:45:32

标签: javascript angularjs json node.js

是否可以动态重新加载项目的配置?

现在配置文件被NPM构建缩小,编辑缩小的文件并不容易。

我的配置位于appConfig.js,其中包含以下代码:

const appConf = {
    BASE_URL: 'http://demo:1817',
    API_BASE_URL: 'http://demo:1817/api'    
};

export default appConf;

在我的index.js中有代码如下:

import appConf from "./appConf";

angular.module('app', [])
    .constant('appConf', appConf)
    .run(function(){
        //do something
    });

在我的服务中,我使用如下配置:

$http.get(appConf.API_BASE_URL + "/something").then(resp => { 
            //do someelse
        });

我想使用新的API编辑appConfig.js而不运行NPM版本。

我想这样做,因为在演示环境中,URL会经常更改。

1 个答案:

答案 0 :(得分:0)

非常困难,并且不建议编辑angular2中的最小化文件。 获取基本URL并使用它而不是保存配置。请尝试以下任何一种方式。 对于Angular2,下面是代码

在服务中添加以下方法

hostUrl() {
      var hostName = window.location.origin;
      return hostName + '/';
  }

在ts文件中使用如下

this.http.get(this.service.hostUrl() + "/something" {
    //do someelse
    });

import {LocationStrategy } from '@angular/common';

constructor(private locationStrategy:LocationStrategy) {
        let currentUrl = this.locationStrategy.path();
        currentUrl = currentUrl.substring(0, currentUrl.indexOf('?'));
        console.log('currentUrl '+currentUrl);
        this.http.get(currentUrl + "/something" {
        //do someelse
        });
}