2016-06-16 4 views
0

Я пытаюсь создать массив из сложного ответа JSON. У меня есть код jQuery, который я пытаюсь адаптировать к Angular, но это не сработает.Loop отлично работает в jQuery, но не работает в Angular

Вот код JQuery, который работает просто отлично:

j$.each(data.groupingsDown.groupings, function(di, de) { 
var values = []; 
reportData.push({"key":de.label, "values": values}); 
    j$.each(data.groupingsAcross.groupings, function(ai, ae) { 
     values.push({"x": ae.label, "y": data.factMap[de.key+"!"+ae.key].aggregates[0].value}); 
    }); 
}); 

Вот версия, которую я пытаюсь использовать в угловому, что не будет работать:

angular.forEach(data.groupingsDown.groupings, function (di, de) { 
var values = []; 
reportData.push({'key' : de.label, 'values' : values}); 
    angular.forEach(data.groupingsAcross.groupings, function (ai, ae) { 
     values.push({'x' : ae.label, 'y' : data.factMap[de.key + '!' + ae.key].aggregates[0].value}); 
    }); 
}); 

Сообщение об ошибке Я прием:

TypeError: не удается прочитать свойство 'агрегатов' неопределенной

Нарушитель Похоже, что строка

[de.key + '!' + ae.key] 

Как я могу сделать эту работу в угловому так же, как это делает в JQuery?

+4

угловой для всех работ проходит функция (значение, ключ) в отличие от функции jquery (ключ, значение) ... возможно, это причина – gaurav5430

+0

Да - это было! Спасибо! – Charlie

ответ

0

За комментарий gaurav5430 мне нужно было отменить (ключ, значение) и сделать его (значение, ключ).

Так изменение 2 функции

function(di, de) 
function(ai, ae) 

в

function(de, di) 
function(ae, ai) 

решить эту проблему.

Смежные вопросы