日期在列中显示为空

时间:2015-09-04 10:21:24

标签: angularjs

我有cmdate过滤器,用于在ng-rpeat中显示日期。

但是ng-repeat在日期列中显示为空

过滤

app.filter('cmdate', [
  '$filter', function ($filter) {
      return function (input, format) {
          return $filter('date')(new Date(input), format);
      };
   }
]);

标记

<tbody>
    <tr data-ng-repeat="o in CustomerCarePreviousFeedBack">
        <td>{{o.Date | cmdate:'dd/MM/yyyy'}}</td>
        <td>{{o.FeedBackDetail}}</td>
    </tr>
</tbody> 

2 个答案:

答案 0 :(得分:1)

您不需要针对此类情况的自定义过滤器

因为此行$filter('date')(new Date(input), format);可以完成您想要的操作。

这是$filter('date')(new Date(input), format);默认角度过滤器,因此您只需从代码中调用它

只需尝试将此更改cmdate改为date

<tbody>
 <tr data-ng-repeat="o in CustomerCarePreviousFeedBack">
 <td>{{o.Date | date:'dd/MM/yyyy'}}</td>
<td>{{o.FeedBackDetail}}</td>
 </tr>
 </tbody> 

更多详情,请转到以下链接

https://docs.angularjs.org/api/ng/filter/date

http://www.angulartutorial.net/2014/04/date-filtering-and-formatting-in.html

答案 1 :(得分:0)

正如Ramesh Rajendran所说,他们的内置过滤器名为date,但如果您需要编写自己的自定义过滤器,请检查以下内容是否正常。

app = angular.module('myModule', []);

app.controller('MyController', ['$scope',function($scope) {
    $scope.CustomerCarePreviousFeedBack = [{
      Date: new Date(),
      FeedBackDetail: "FeedBack Details"
    }];
}]);

app.filter('cmdate', ['$filter', function($filter) {
    return function(input, format) {
      return $filter('date')(new Date(input), format);
    }
}]);
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.22/angular.min.js"></script>

<div ng-app="myModule" ng-controller="MyController">

  <table>
    <tr data-ng-repeat="o in CustomerCarePreviousFeedBack">
      <td>{{ o.Date | date:'dd/MM/yyyy'}}</td>
      <td>{{o.FeedBackDetail}}</td>
    </tr>
  </table>

</div>