2016-03-17 1 views
1

Я просмотрел документацию по угловым и электрическим сетям, не найдя то, что было названо «CellFormatters» в проекте, в котором я был частью нескольких лет назад.Угловая-ui-сетка: как отформатировать содержимое поля данных

«CellFormatters» были использованы для предоставления текстового рендеринга поля, для которого предназначен столбец сетки. Например, предположим, что у нас есть столбец для булевого поля isContentEditor в приложении, в котором большинство его пользователей являются простыми читателями. Мы могли бы решить, что во избежание помех UI столбец не должен отображать «ложь» или «нет» или иначе, но он должен скорее ничего не показывать.

В этом старом проекте мы бы определили функцию CellFormatter, которая, IIRC, получит хотя бы значение поля (то есть либо true, либо false) и вернет строку, которая должна быть версией HTML-версии поле содержание.

Возможна ли такая предварительная обработка через функции JavaScript с помощью угловой-ui-сетки?

+0

Если вы не ограничены использовать угловую-UI-сетки попробовать handsontable/ngHandsontable, который поддерживает клеточные рендеры: http://docs.handsontable.com/0.24.1/demo-custom- renderers.html –

+1

Да, посмотрите на атрибут cellTemplate. http://ui-grid.info/docs/#/tutorial/317_custom_templates –

+0

@ S.Baggy Я использовал решение cellFilter. Но да, cellTemplate, похоже, подходит, когда требуется форматирование. – AbVog

ответ

2

Используйте 'cellFilter' для указания фильтра для этих данных. Кроме того, если вы установите для параметра sortCellFiltered значение true, сортировка будет применяться ПОСЛЕ того, как фильтр будет использован.

{ 
    field: 'validFrom', displayName: 'VALID FROM',type : 'date', 
    cellFilter : 'date', enableCellEdit : false, sortCellFiltered : true 
} 

.filter('date', function(moment) { 
    return function(input) { 
     if (input) { 
      return moment(input).format('MMM Do, YYYY'); 
     } 
     return 'No Date Provided'; 
    }; 
}); 

ColumDefs Ui-Grid

+1

Великолепный! Имя фильтра в 'filter ('parseDate' ...)' должно быть именем, используемым в определении столбца. Конечно, фильтр должен быть определен на модуле. И HTML-код не поддерживается этим методом. Для форматирования HTML использование cellTemplate, вероятно, является обязательным. Кроме того, может потребоваться установить 'filterCellFiltered' в' true'. – AbVog