循环在 jQuery 中工作正常,但在 Angular 中不起作用

Loop works fine in jQuery but won't work in Angular

我正在尝试从复杂的 JSON 响应创建一个数组。我有工作的 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 中尝试使用的版本,但无法使用:

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});
    });
});

我收到的错误消息是:

类型错误:无法读取未定义的 属性 'aggregates'

违规行似乎是

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

我怎样才能使它在 Angular 中像在 jQuery 中一样工作?

根据 gaurav5430 的评论,我需要反转 (key, value) 并使其成为 (value, key)。

所以改变 2 个函数

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

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

解决了问题。