我想利用money.js和accounting.js(用于格式化货币)来更改给定价格的货币。我首先想做一个简单的例子,然后继续前进。
This article完全描述了我想要完成的内容,所以我尝试复制它的例子,但是,我在使其工作时遇到了一些困难。
我想在文章中使用openexchangerates.org(基于fixer.io)替换European Central Bank's feed中的JSON。
这是迄今为止的样子,基本上上面链接的文章包括 - http://jsfiddle.net/d6f5a/
$(document).ready(function(){
fx.base = "EUR";
fx.settings = {
from : "EUR"
};
var amount = 9.99;
// Load exchange rates data via the cross-domain/AJAX proxy:
$.getJSON(
'http://api.fixer.io/latest',
function(data) {
// Check money.js has finished loading:
if ( typeof fx !== "undefined" && fx.rates ) {
fx.rates = data.rates;
fx.base = data.base;
} else {
// If not, apply to fxSetup global:
var fxSetup = {
rates : data.rates,
base : data.base
}
}
// now that we have exchange rates, add a few to our page
var USD = fx.convert(amount, {to: "USD"}); //13.22784197768393
var GBP = fx.convert(amount, {to: "GBP"}); //8.567532636985659
var JPY = fx.convert(amount, {to: "JPY"}); //1028.1670562349989
// use the accounting.js library to format the numbers properly
USD = accounting.formatMoney(USD, "$ ", 2, ",", ".");
GBP = accounting.formatMoney(GBP, "£ ", 2, ",", ".");
JPY = accounting.formatMoney(JPY, "¥ ", 2, ",", ".");
$("ul.currencies").append("<li>USD estimate: " + USD + "</li>");
$("ul.currencies").append("<li>GBP estimate: " + GBP + "</li>");
$("ul.currencies").append("<li>JPY estimate: " + JPY + "</li>");
}
);
});
非常感谢任何帮助或指示。
答案 0 :(得分:2)
经过进一步挖掘后,我发现该问题与跨域资源共享(CORS)有关。
在某种程度上,浏览器没有加载JSON文件,因此脚本失败了。为了解决这个问题,我将JSON URL设置为http://api.fixer.io/latest?symbols=USD,GBP,JPY**&callback=?**
通过使用?callback =?或&amp; callback = ?, jQuery会向API发出JSON-P请求。
我已在此处更新了我的示例 - http://jsfiddle.net/d6f5a/3/