Я уверен, что это должно быть простое решение, но я не могу понять, что это правильно.
Когда я перезагружаю функцию в javascript, которая читает данные из внешнего JSON следующим образом:
var json = JSON.parse(this.responseText);
json.index работает нормально с индексом, начинающимся с 0, но когда я перезагружаю функцию (или снова вызываю функцию), тогда индекс равен (0 + json.length), и это проблема для меня, потому что Мне нужен индекс, чтобы получить правильные данные в другом окне.
Любая подсказка о том, как начать json с индекса = 0 каждый раз, когда я запускаю функцию?
Большое спасибо!
обновление: вот функция, которую я повторно вызываю. Код был обрезан для простоты. Также стоит отметить, что это проект Appcelerator.
A2B.createView = function(tipo) {
var xhr = Ti.Network.createHTTPClient();
xhr.open("GET","http://localhost.com");
xhr.onload = function() {
var json = JSON.parse(this.responseText);
if (!json) {
Titanium.API.info('Error - Null return!');
return;
}
var myAnnotations = new Array();
var json = json.all;
var pos;
if (tipo==1){
for( pos=0; pos < json.length; pos++){
// this adds some markers to a map
myAnnotations.push(dbMarker);
}
}
else {
for( pos=0; pos < json.length; pos++){
myAnnotations.push(dbMarker);
}
}
A2B.mapview.annotations = myAnnotations;
};
xhr.send();
A2B.win.add(A2B.mapview);
// map view click event listener
A2B.mapview.addEventListener('click', function(json) {
if (json.clicksource == 'rightButton') {
var w2 = Titanium.UI.createWindow({
title:'XXX',
url:'eachevent.js',
backgroundColor:'#f8f8f8'
});
w2.stringProp1 = ''+json.index+'';
//the value of json.index is the one that it keeps adding to itself when I call the function
w2.myFunc = function()
{
return 'myFunc was called';
};
w2.open({modal:true});
};
});
});
};