我需要将一个字符串传递给一个函数,该函数将它转换为一个名为stringToDate()的JavaScript日期对象。如果不首先执行此操作,Angular日期过滤器将无法工作,因为它需要Date对象。我编写了自定义过滤器,并在我的视图中使用了以下代码。
<div ng-repeat="blogPost in blogPosts" class="blog-item">
<h6>{{blogPost.date | stringToDate:blogPost.date | date: 'medium' }}</h6>
</div>
这是有效的,但有一种更简洁的方法来传递它“blogPost.date”看起来很麻烦,我觉得我不是以Angular方式做的。
答案 0 :(得分:2)
Angular已经能够格式化您的日期。检查日期过滤器文档here。
<h6>{{blogPost.date | date: 'medium' }}</h6>
但是如果你想在你的过滤器中做一些自定义工作,你不需要将 blogPost.date 传递给你的自定义过滤器,它会被隐含地作为第一个参数传递
<div ng-repeat="blogPost in blogPosts" class="blog-item">
<h6>{{blogPost.date | stringToDate | date: 'medium' }}</h6>
</div>
你的过滤器:
.filter('stringToDate', function() {
return function (date) {
return new Date(date);
};
});
检查工作plunker。