У меня есть объект JSON, который заполнен XHR. Затем мне нужно обновить этот объект со значениями из отдельного вызова XHR. Проблема, с которой я сталкиваюсь, - это второй вызов, который не выполняется в правильное время, и я думаю, что это проблема с тем, как я структурировал свой объект. Вот что у меня есть:JSON Object XHR и замыкания
function Proprietary()
{
var proprietary= this;
this.Groups = {};
this.getGroups = function()
{
$.getJSON(group_url, function(data){proprietary.callReturned(data);});
}
this.callReturned = function(data)
{
//Do stuff
for(var i=0; i< data.groups.length; i++)
{
insparq.Groups[i] = data.groups[i];
$.getJSON(participant_url, function(p){proprietary.Groups[i].participants = p;});
}
//the function call below is the action I want to occur after the object is populated.
PopulateGroups();
}
};
Я думаю, что вы назвали переменную, называемую «проприетарной» в функции «запатентованная», могут вызвать некоторые проблемы, не так ли? –
'PopulateGroups' вызывается до того, как все' $ .getJSON (member_url ... '). Вам нужно проверить, сколько участников вы загружаете, используя внешний счетчик и проверяя его на размер' private.Groups' внутри '$ .getJSON (member_url ...' функция обратного вызова и только тогда, когда они равны, вы должны называть 'PopulateGroups'. –
Спасибо, Horia. Где/как увеличивать счетчик? –