データには、ページの列よりも多くのフィールドがあります。フィールドを列に合計する必要があります。
私が持っているJSON:
{
'foo1' : 10,
'foo2' : 11,
'foo3' : 5,
'bar1' : 23,
'bar2' : 2,
'baz1' : 53,
'baz2' : 43
},{
'foo1' : 11,
'foo2' : 41,
'foo3' : 31,
etc.
}
私が欲しいGRID:
Foos Bars Baz's
---- ---- -----
26 23 96
83 etc.
したがって、フィールドをレンダリングする前に、次のように複数のアイテムを追加できるようにしたいと考えています。
columnDefs: [{
field: 'foo1 + foo2 + foo3',
displayName: 'Foos'
},{
field: 'bar1 + bar2',
displayName: 'Bars'
},{
field: 'baz1 + baz2',
displayName: 'Baz's'
}]
または多分何か
field : 'sumFields([foo1,foo2,foo3])'
...
$scope.sumFields = function(fieldlist){
return fieldlist.reduce(function(pv, cv) { return pv + cv; }, 0));
};
もちろん、この疑似コードはどれも機能しません。
また、すべての列にカスタムの CellTemplate を作成することは避けたいと思います。
最悪のシナリオだと思いますが、レンダリングする前にデータをマッサージすることができます...だから、
{
'foo1' : 10,
'foo2' : 11,
'foo3' : 5,
'bar1' : 23,
'bar2' : 2,
'baz1' : 53,
'baz2' : 43,
'foos': 26,
'bars': 23,
'bazs': 96
},{
'foo1' : 11,
'foo2' : 41,
'foo3' : 31,
etc.
}
[編集]変更されていないグリッドを含むサンプルプランカーと、必要なものの描写を追加しました。
http://plnkr.co/edit/x5abGuyvunBDes6h60eg?p=preview
私は猫や犬や他の動物を見たいのではなく、特定の種類の合計を見たい. 私が示すよりも多くのこれらの列があるので、より一般的な解決策を探しています。
numAnimalsByType([arrayOfAnimals])
だから私はこれを行うことができます:
field: numAnimalsByType([dog,cat])
field: numAnimalsByType([fish,snail])