我需要将一个字符串传递给一个函数,该函数将其转换为一个 JavaScript 日期对象,称为 stringToDate()。如果不先执行此操作,Angular 日期过滤器将无法工作,因为它需要一个 Date 对象。我已经编写了自定义过滤器,并在我的 View 中使用了以下代码。
<div ng-repeat="blogPost in blogPosts" class="blog-item">
<h6>{{blogPost.date | stringToDate:blogPost.date | date: 'medium' }}</h6>
</div>
这行得通,但是有没有一种更简洁的方式来传递它“blogPost.date”看起来很麻烦,我觉得我没有按照 Angular 的方式来做。
最佳答案
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 .
关于javascript - 将重复项目传递给自定义过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26804947/