私はAngularJSのために新しく、各ループのネストされた角度の内部で関数のパラメータ値にアクセスしようとしていますが、その変数は未定義のエラーを取得します。ここに私のコードです。各ループのネストされた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はここでは定義されていませんが、問題は何ですか?親切に私を助けてください。あなたの二angular.forEach
ループでは
var groupBy = function (xs, key) {
return xs.reduce(function (rv, x) {
(rv[x[key]] = rv[x[key]] || []).push(x);
return rv;
}, {});
};
上部にあなたの機能の権利はあまりにも変数_fieldNameを持って、そしてあなたのforEachが_fieldNameという名前の変数を持って、これらはおそらくあなたがしたいプロパティ(row._fieldName)に干渉されるだろうか?それらのすべてにユニークな名前を付けてみてください。また、console.log()はどのobjであるか、期待する構造体/プロパティを保持しているかどうかを確認してください。 – rrd
関数groupByが配列の配列を返していない可能性があります。配列の配列を返す予定がない場合は、ロジックをチェックします。あなたがまだ助けを必要とするならば、グループを投稿してください。 – Abhi