ui-grid
공식 웹 사이트 ( http://ui-grid.info/docs/#/tutorial/209_grouping ) 의 예제는 다음과 같은 그룹화 기능을 제공합니다.
Grouping
메뉴 항목 을 갖고 싶지만 열 메뉴에 항목 Aggregate
(개수, 합계, 최대, 최소, 평균)이 없어서 제거 할 방법을 찾을 수 없습니다.
내가 시도한 해결책 uiGridGroupingService
은 groupingColumnBuilder에 대한 데코레이터를 제공 하여을 재정의하는 것이었지만 서비스가 전혀 해결되지 않았으며 이것을 달성하는 더 간단한 방법이 있는지 궁금합니다.
이 문제에 대한 해결책을 알고있는 사람이 있습니까?
이 경우 데코레이터 접근법이 아마도 가장 좋은 접근법 일 것입니다. 열 메뉴에서이를 제거하는 구성 옵션이 없습니다.
추신 : 데코레이터는 집계 항목을 제거하기 위해서만 표시됩니다.
다음은 데코레이터 접근 방식으로 작동하는 plnkr입니다.
http://plnkr.co/edit/nzBeqbmEVUwmZF0qgyd6?p=preview
app.config(function($provide){
$provide.decorator('uiGridGroupingService', function ($delegate,i18nService,gridUtil) {
$delegate.groupingColumnBuilder = function (colDef, col, gridOptions) {
if (colDef.enableGrouping === false){
return;
}
if ( typeof(col.grouping) === 'undefined' && typeof(colDef.grouping) !== 'undefined') {
col.grouping = angular.copy(colDef.grouping);
} else if (typeof(col.grouping) === 'undefined'){
col.grouping = {};
}
if (typeof(col.grouping) !== 'undefined' && typeof(col.grouping.groupPriority) !== undefined && col.grouping.groupPriority >= 0){
col.suppressRemoveSort = true;
}
col.groupingSuppressAggregationText = colDef.groupingSuppressAggregationText === true;
var groupColumn = {
name: 'ui.grid.grouping.group',
title: i18nService.get().grouping.group,
icon: 'ui-grid-icon-indent-right',
shown: function () {
return typeof(this.context.col.grouping) === 'undefined' ||
typeof(this.context.col.grouping.groupPriority) === 'undefined' ||
this.context.col.grouping.groupPriority < 0;
},
action: function () {
service.groupColumn( this.context.col.grid, this.context.col );
}
};
var ungroupColumn = {
name: 'ui.grid.grouping.ungroup',
title: i18nService.get().grouping.ungroup,
icon: 'ui-grid-icon-indent-left',
shown: function () {
return typeof(this.context.col.grouping) !== 'undefined' &&
typeof(this.context.col.grouping.groupPriority) !== 'undefined' &&
this.context.col.grouping.groupPriority >= 0;
},
action: function () {
service.ungroupColumn( this.context.col.grid, this.context.col );
}
};
if (!gridUtil.arrayContainsObjectWithProperty(col.menuItems, 'name', 'ui.grid.grouping.group')) {
col.menuItems.push(groupColumn);
}
if (!gridUtil.arrayContainsObjectWithProperty(col.menuItems, 'name', 'ui.grid.grouping.ungroup')) {
col.menuItems.push(ungroupColumn);
}
}
return $delegate;
})
});
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다