我正在尝试从复杂的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中一样?
答案 0 :(得分:0)
根据gaurav5430的评论,我需要反转(键,值)并使其成为(值,键)。
所以改变2个功能
function(di, de)
function(ai, ae)
到
function(de, di)
function(ae, ai)
解决了这个问题。