sah*_*oun 0 api configuration web-services endpoint angular
我是 Angular2 的新手。我想要一个单一的类或一个配置文件,其中包含我可以在所有服务中注入的所有 API 端点(允许参数等在不同的路由中)。在 Angular2 中这样做的最佳方法是什么?我的意思是,我应该像定义服务时那样定义一个 @Injectable 类(然后将它添加到我的服务的提供者中)。
我发现的问题是,当我将我的 api 部署到客户端部分的服务器上时,我必须更改所有以字符串格式调用的端点,因此如果我有许多端点可以使用,这将是浪费时间。
在此示例中,我使用字符串格式的端点调用服务:
getData() {
return this._http.get('http://localhost:8000/cartography')
.map(function(res) {
const jsonArray = res.json();
const newJsonArr = [];
for ( let i = 0; i < jsonArray.length; i++) {
const object = {
post_name : jsonArray[i].name,
employment_name : jsonArray[i].employment.name,
profession_name : jsonArray[i].employment.profession.name,
family_name : jsonArray[i].employment.profession.family.name
};
newJsonArr.push(object);
}
return newJsonArr;
});
}
Run Code Online (Sandbox Code Playgroud)
所以我正在寻找一种在类或配置文件中将其定义为全局变量的方法。任何帮助请!谢谢 。
您可以只拥有一个常量文件。它不是一个特殊的文件,我们可以在任何文件中进行。
url.constants.ts
export const URL1 = "..... "
export const URL2 = " .... "
Run Code Online (Sandbox Code Playgroud)
然后您可以在代码中的任何位置访问它们
import { URL1 } from 'url.constants';
Run Code Online (Sandbox Code Playgroud)
或者你可以把它们放在一个 JSON 文件中
它并不简单。你可以在这里看到它是如何完成的https://hackernoon.com/import-json-into-typescript-8d465beded79
正如评论中提到的,它变得更容易了:https : //stackoverflow.com/a/50674344/1195056
更新:
将常量放入打字稿文件的另一个优点是:我们可以使用函数。
例如:
export const USER_NOT_FOUND = (user:string)=> `${user} not found `
Run Code Online (Sandbox Code Playgroud)
这可以像
const errorMessage = USER_NOT_FOUND(this.user.name);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6495 次 |
| 最近记录: |