1

我正在使用 fixer.io 和 money.js 转换货币。money.js 用于转换货币,而 fixer.io 是一个获取最新汇率的 api。我需要将最新汇率加载到 money.js 汇率对象中。

因为我使用的是 angular,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;
4

1 回答 1

2

这很简单,在 Angular 中使用httpPromise。要处理承诺,请使用该.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.
});

如果您需要,这是有效的 plnkr 。

于 2016-12-14T01:40:13.010 回答