循环在jQuery中工作正常但在Angular

时间:2016-06-16 13:22:28

标签: javascript jquery angularjs salesforce

我正在尝试从复杂的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});
    });
});

我收到的错误消息是:

TypeError:无法读取未定义

的属性“聚合”

违规行似乎是

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

如何在Angular中完成这项工作,就像在jQuery中一样?

1 个答案:

答案 0 :(得分:0)

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

所以改变2个功能

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

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

解决了这个问题。