我使用fixer.io和money.js转换货币。 money.js用于转换货币和fixer.io是一个获取最新汇率的api。我需要将最新的汇率加载到money.js汇率对象中。
因为我使用了角度,所以money.js的加载方式如下:
var fx = require("money");
为了转换工作,我们必须像这样定义fx.base
和fx.rates
:
fx.base = "USD";
fx.rates = {
"EUR" : 0.745101, // eg. 1 USD === 0.745101 EUR
"GBP" : 0.647710, // etc...
"HKD" : 7.781919,
"USD" : 1, // always include the base rate (1:1)
/* etc */
}
但是,而不是将fx.rates
的硬编码数据从GET请求填充到fixer.io API,它将返回此JSON:
http://api.fixer.io/latest
我是一个角落的总菜鸟,所以我不明白如何将json响应加载到另一个json对象中。
做出类似事情的正确方法是什么:
var response = $http.get("http://api.fixer.io/latest");
fx.rates = response;
答案 0 :(得分:2)
使用Angular中的http
promise非常简单。要处理承诺,请使用.then
方法。您只需要一个处理数据的回调函数。 :
var response = $http.get("http://api.fixer.io/latest");
//handle promise
response.then(function(response) {
//this is response from the api fixer. The data is the body payload
fx.rates = response.data;
}, function(error) {
//handle error here, if there is any.
});
如果您需要,可以使用working plnkr。