angularjs – Angular JS日期过滤器不工作

前端之家收集整理的这篇文章主要介绍了angularjs – Angular JS日期过滤器不工作前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个ng-repeat元素,它将循环$ http.get()结果。
<tr ng-repeat="blog in posts">
     <td style="text-align:center">{{ $index+1 }}</td>
     <td>{{ blog.title }}</td>
     <td>
         {{ blog.author.name }}
     </td>
     <td>
         {{ blog.created_at | date:'MMM-dd-yyyy' }}
     </td>
</tr>

我在MysqL数据库表中创建了timestamp的时间戳。而我正在使用angular.js v1.0.7。

我从db表获得相同的输出,日期过滤器不起作用。我该如何解决

我的ajax电话,

$http({method: 'GET',url: 'http://localhost/app/blogs'}).
success(function(data,status,headers,config) {
    $scope.posts = data.posts;
}).
error(function(data,config) {
    $scope.posts = [];
});
传递给过滤器的日期需要为JavaScript Date类型。

你检查过blog.created_at的值是否显示为没有过滤器?

你说你支持的服务正在返回一个表示日期的字符串。您可以通过两种方式解决此问题:

>使您的服务器端代码返回一个json日期对象

检查服务器端代码如何序列化返回的json

>编写自己的过滤器,接受字符串日期并返回所需格式的日期

>注意:您可以在自己的过滤器中调用角度过滤器

您可以编写自己的过滤器如下:

app.filter('myDateFormat',function myDateFormat($filter){
  return function(text){
    var  tempdate= new Date(text.replace(/-/g,"/"));
    return $filter('date')(tempdate,"MMM-dd-yyyy");
  }
});

并在您的模板中使用它:

<td>
  {{ blog.created_at | myDateFormat }}
</td>

而不是遍历返回的数组,然后应用过滤器

猜你在找的Angularjs相关文章