阅读文档http://openexchangerates.github.io/money.js/#fx.rates,Its说您需要设置您的费率:
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 */
}我完全明白,只有这些才是静态的。它说要有动态速率,您需要添加json:
// Load exchange rates data via AJAX:
$.getJSON(
// NB: using Open Exchange Rates here, but you can use any source!
'http://openexchangerates.org/api/latest.json?app_id=[I hid this number]', 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
}
}
});但是当我这么做的时候,欧元的汇率没有变化,仍然是0.74。利率不会改变或调整。
在money.js脚本之前或之后将json请求放在哪里?还是在money.js文件中?如果在money.js文件中,在哪里,在底部还是顶部?-或者请告知我在这里出错的地方,
发布于 2015-05-29 14:27:58
一旦加载了money.js,您应该能够在任何地方重载它(javascript通常允许这样做)。
没有足够的细节可以确定地说,但我猜这是一个常见的争用条件,因为web调用是异步的,所以如果您正在执行这样的操作:
-Load Money js
-Call Web call for rates
-Use money.js很可能,当您使用money.js时,您的速率调用还没有返回,所以当您调用它时,您使用的是默认值。如果这是您的问题,您需要将代码放在回调中,以便在实际设置费率时使用,如下所示:
$.getJSON(
// NB: using Open Exchange Rates here, but you can use any source!
'http://openexchangerates.org/api/latest.json?app_id=[I hid this number]', 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
}
}
// YOUR CODE HERE
});这些文档实际上提到了以下内容:
You'll need to wait until the AJAX request has completed before you can
begin processing conversions. You may also wish to cache
proximate/historical rates on your server and bootstrap them inline
into the HTML as a backup.发布于 2015-05-29 14:28:38
https://openexchangerates.org/documentation#example-javascript-ajax-jquery
JavaScript (AJAX / jQuery) 您可以使用AJAX请求轻松地将费率加载到带有JavaScript的应用程序或网站中。我推荐使用jQuery,因为它可以为您节省一吨头痛,而且从统计上说,您可能已经在页面/应用程序中使用了它:
// Use jQuery.ajax to get the latest exchange rates, with JSONP:
$.ajax({
url: 'http://openexchangerates.org/api/latest.json?app_id=YOUR_APP_ID',
dataType: 'jsonp',
success: function(json) {
// Rates are in `json.rates`
// Base currency (USD) is `json.base`
// UNIX Timestamp when rates were collected is in `json.timestamp`
// If you're using money.js, do this:
fx.rates = json.rates;
fx.base = json.base;
}
});使用JSONP是可选的- jQuery将在URL中附加一个回调参数,并且响应将被包装在一个函数调用中。这是为了防止访问控制(CORS)问题,并将在许多情况下为您省去一些麻烦,尽管在安全性方面它并不是首当其冲的(实际上,如果您的应用程序中的安全性是首要考虑的话,您应该将结果代理到您自己的服务器上,以100%防止XSS攻击。开放汇率也将很快支持HTTPS。 成功回调是异步的,这意味着如果您有代码要立即运行,这依赖于汇率是可用的,这段代码应该在回调内部。在AJAX请求等待时,程序的其余部分将继续执行。
表示强调:如果您有要立即运行的代码,这取决于可用的汇率,则此代码应该在回调中。
https://stackoverflow.com/questions/30531765
复制相似问题