ng-grid行模板中的日期格式

时间:2014-04-04 10:42:23

标签: angularjs ng-grid

我创建了一个包含以下列定义的ng-grid:

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。这可能吗?如果是这样,怎么样?

2 个答案:

答案 0 :(得分:10)

使用date过滤器,如下所示:

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

答案 1 :(得分:1)

我遇到了上述方法的问题。如果您对列使用过滤或排序,它们仍然对字段值中的时间戳或Date对象进行操作,而不是在cellTemplate中使用过滤器的结果。因此,用户可以输入&#34; 03&#34;在列过滤器中,但看到像&#34; 12/31/2005&#34; - 03在时间戳中,没有显示。

我找到的解决方案是在columnDef对象中使用cellFilter:'date:"MM/dd/yyyy"'。这样可以保留排序和过滤,同时允许您显示日期。感谢Victor:http://www.victorshi.com/blog/post/How-to-format-a-datetime-column-in-ng-grid