我正在编写Phonegap应用程序。我的问题是,在从函数内部修改全局变量时,全局变量不会被更改。
正在从jquery ajax回调中触发函数。这个ajax回调是从Phonegap' deviceready'事件。我非常确定这个函数是在chrome中执行的(使用ripple来触发' deviceready')但是全局变量没有被更改。
这是我的'设备准备'监听器:
document.addEventListener("deviceready", function() {
storage = window.localStorage;
LOCALE = "es_ES";
$.ajax({
type: 'POST',
url: SERVER,
data: 'task=' + 'checkRutas' + '&lng=' + LOCALE,
dataType: "json",
success: function(msg) {
getNuevasRutas(msg);
}
});
这就是我改变我的arrayRutasId数组的功能:
var SERVER = "http://borrafe.clientes2a.net/XXXXXXX";
var LOCALE = "";
var RUTAVERSIONPREFIX = "rutaversionprefix";
var RUTADATA = "rutaprefix";
arrayRutasId = [];
function getNuevasRutas(respuestas) {
var nuevasRutas = [];
var arrayRutas = respuestas['rutas'];
console.log('Rutas: ' + arrayRutas);
rutasRestantesNetwork = arrayRutas.length;
$.each(arrayRutas, function(i, ruta) {
var version = storage.getItem(RUTAVERSIONPREFIX + ruta.version);
arrayRutasId.push(RUTADATA + ruta.id);
console.log(RUTADATA + ruta.id);
if (storage.getItem(RUTADATA + ruta.id) === null || version < ruta.version) {
console.log("Por sgunda condición?? " + (version < ruta.version));
getRuta(ruta.id);
} else {
rutasRestantesNetwork--;
}
});
console.log("Hay nuevas rutas en arrayrutasid " + arrayRutasId.length);
return nuevasRutas;
}
所有日志都是正确的,并且在函数&#39; arrayrutasid&#39;是正确推送元素。顺便说一句,常量正在函数内正确访问!!
- - - - - - - - EDIT 我试图从Chrome控制台读取变量。
答案 0 :(得分:0)
您错过了});
document.addEventListener("deviceready", function() {
storage = window.localStorage;
LOCALE = "es_ES";
$.ajax({
type: 'POST',
url: SERVER,
data: 'task=' + 'checkRutas' + '&lng=' + LOCALE,
dataType: "json",
success: function(msg) {
getNuevasRutas(msg);
}
});
});