我想使用money.js和accounting.js (用于格式化货币)来更改给定价格的货币。在继续之前,我想先看一个简单的例子。
This article准确地描述了我想要完成的任务,所以我尝试复制它的示例,但是,我在让它工作时遇到了一些困难。
我想用fixer.io (它基于European Central Bank's feed)替换文章中来自openexchangerates.org的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>");
}
);
});任何帮助或指示都将不胜感激。
发布于 2014-06-01 21:59:43
经过进一步的挖掘,我发现这个问题与跨域资源共享(CORS)有关。
在这种程度上,浏览器没有加载JSON文件,因此脚本失败。为了解决这个问题,我将JSON URL设置为http://api.fixer.io/latest?symbols=USD,GBP,JPY**&callback=?**
通过使用?callback=或&callback=,jQuery将向该应用程序接口发出JSON-P请求。
我已经在这里更新了我的示例- http://jsfiddle.net/d6f5a/3/
https://stackoverflow.com/questions/23975882
复制相似问题