循环在 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)
解决了问题。
我正在尝试从复杂的 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)
解决了问题。