2014-04-04 2 views
5

Я создал нг-сетку со следующими определениями столбцов:формат даты в нг сетки шаблон строки

columns: [ 
    { field: "CompanyPkid", visible: false }, 
    { field: "CompanyName", visible: false }, 
    { field: "StartDate", visible: false, cellFilter: "date:'yyyy-MM-dd'" }, 
    { field: "CompanyId", 
    displayName: "Company ID", 
    cellTemplate: "<div class=\"ngCellText\" ng-class=\"col.colIndex()\">"+ 
        "<a href=\"Company/Edit/{{row.getProperty('CompanyPkid')}}\">"+ 
         "{{row.getProperty(col.field)}}"+ 
        "</a><br />"+ 
        "{{row.getProperty('CompanyName')}}<br />"+ 
        "{{row.getProperty('StartDate')}}"+ 
        "</div>", 
    }], 

Один из столбцов является скрытой столбец даты.

В одном из столбцов используется шаблон и включает значение из столбца скрытой даты.

Я хотел бы отформатировать дату в многострочной колонне до yyyy-MM-dd. Это возможно? Если да, то как?

ответ

10

Используйте date фильтр, например:

{{row.entity.StartDate | date:'yyyy-MM-dd'}} 
+1

Блестящий! Благодаря! –

1

Я столкнулся с проблемой с вышеизложенным подходом. Если вы используете фильтрацию или сортировку в столбце, они по-прежнему работают с меткой времени или объектом Date из значения поля, а не с результатами использования фильтра внутри cellTemplate. Таким образом, пользователи могут вводить «03» в фильтр столбцов, но видеть дату типа «12/31/2005» - 03 был в метке времени, которая не отображается.

Решение, которое я нашел, - использовать cellFilter: 'date:"MM/dd/yyyy"' в объекте columnDef. Это сохраняет сортировку и фильтрацию, позволяя вам отображать дату, как вы хотите. Кредит Виктору: http://www.victorshi.com/blog/post/How-to-format-a-datetime-column-in-ng-grid