我是AngularJS的新手,我试图在每个循环的嵌套角度内访问函数参数值,但该变量得到未定义的错误。这是我的代码。
var pieChart = function (_data, _fieldName) {
var data = _data;
var cost_max = 0;
var cost_min = 99999;
angular.forEach(groupBy($scope.api_data, _fieldName), function (obj, index) {
var total = 0;
var name = '';
angular.forEach(obj, function (row, i) {
name = row._fieldName;
total += 1;
})
data.push([name, total]);
if (cost_max < obj.cost) cost_max = obj.cost;
if (cost_min > obj.cost) cost_min = obj.cost;
})
$scope.chart.data = data;
$scope.loaded = 1;
}
这里未定义row._fieldName,问题是什么?请帮助我。
var groupBy = function (xs, key) {
return xs.reduce(function (rv, x) {
(rv[x[key]] = rv[x[key]] || []).push(x);
return rv;
}, {});
};
答案 0 :(得分:1)
在第二个angular.forEach
循环中,您必须将row._fieldName
替换为row[_fieldName]
。
angular.forEach(obj, function (row, i) {
name = row[_fieldName];
total += 1;
})
通过撰写row._fieldName
,您尝试从对象_fieldName
获取名为row
的密钥,而不是真实字段。