如何在Angular 4中读取配置参数或文件

时间:2017-07-25 07:56:41

标签: angular typescript

我需要阅读 - 在Angular服务类(TypeScript)中 - 一个配置文件,其中包含我使用的数据的Web服务的基本URL。

这只是一个带有HttpClient的Ajax调用,但我是角色的新手。

我从 Node.js 服务器提供我的应用程序。

此baseUrl发生了变化,这就是它需要配置的原因。实际上,我还想检查是否可以将基本Url定义为启动参数。

4 个答案:

答案 0 :(得分:1)

创建一个名为app.config.ts的文件 - 名称可由您决定,如下所示:

export interface ApplicationConfig {
  apiURL: string;
}

export const CONFIG: ApplicationConfig = {
  apiURL: 'url to your server';
};

在您的服务中,导入该文件并按如下方式使用:

import { CONFIG } from '../config/app.config';

@Injectable()
export class Service {
  private baseURL: string = CONFIG.apiURL;

  constructor(private http: Http){}

  public getSomething():Observable<any> {
    let url:string = this.baseUrl + 'endpoint url after the base url';

    return this.http.get(url).map((res:Response) => res.json());
  }
}

答案 1 :(得分:0)

您可以创建一个基本文件来导出您的端点,例如您的base.ts应该是这样的:

export const baseUrl = 'http://yourendpoint.com';

然后在您的组件或服务中,您可以像以下一样使用它:

import {baseUrl} from './base'; //path to base.ts
...
console.log(baseUrl);//http://yourendpoint.com

答案 2 :(得分:-1)

我想说最简单的例子就是做以下事情:

//Declaring your config
var myServices = angular.module('some.module', ['ngResource']);
var myConfingurationService = angular.module('some.module', []);
    myConfingurationService .constant('CONFIG', {
        BASE_URL: '/bin/restproxy'
});

//Using your configured parameter
myServiceFactory.factory('myServices', ['invHttp', 'CONFIG', function (invHttp, CONFIG) {
    var completeURL = CONFIG.BASE_URL + '/some/other/stuff';
}

答案 3 :(得分:-2)

您可以在角度网站上阅读非常全面的教程。在这里,您可以了解所需的所有基础知识:https://angular.io/tutorial/toh-pt6