私はこの同じ問題に遭遇し、私が見つけたいくつかの提案された解決策を試しましたが、私が持っているグリッドのバージョンでは機能しませんでした. グリッド ソースを検索し、集計行に使用していたテンプレートを見つけてコピーし、微調整して、表示の一部のメソッドに関数の呼び出しを含めました。
私の gridOptions で、以下に示すプロパティを定義します
aggregateTemplate: "<div ng-click=\"row.toggleExpand()\" ng-style=\"rowStyle(row)\" class=\"ngAggregate\">" +
" <span class=\"ngAggregateText\"><span class='ngAggregateTextLeading'>{{row.totalChildren()}} {{row.label CUSTOM_FILTERS}} {{entryMaybePlural(row)}}</span><span>Total Weight: {{aggFunc(row)}} lbs {{AggItemsLabel}}</span></span>" +
" <div class=\"{{row.aggClass()}}\"></div>" +
"</div>" +
""
グリッドのコントローラーのスコープには、次の機能があります
$scope.aggFunc = function (row) {
var total = 0;
angular.forEach(row.children, function(cropEntry) {
total+=cropEntry.entity.weight;
});
return total.toString();
};
$scope.entryMaybePlural = function (row) {
if(row.children.length>1)
{
return "entries";
}
else
return "entry";
};
どちらの場合も、テンプレートの行をコントローラー スコープの関数に渡し、行の children というプロパティを確認します (他の試みではうまくいかなかったときに、Chrome デバッグ ツールを使用してこれを理解しました)。いい結果)。
PS私のグリッドには、バージョンはありませんが、このコンパイルコメントが上部にあります:|
/***********************************************
* ng-grid JavaScript Library
* Authors: https://github.com/angular-ui/ng-grid/blob/master/README.md
* License: MIT (http://www.opensource.org/licenses/mit-license.php)
* Compiled At: 06/03/2013 21:19
***********************************************/