javascript - 将重复项目传递给自定义过滤器

标签 javascript angularjs

我需要将一个字符串传递给一个函数,该函数将其转换为一个 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/

相关文章:

Javascript 检查空字段,安全吗?

javascript - 自动隐藏文本并通过按下按钮显示

javascript - 在具有最大高度的子元素中自动滚动

angularjs - 创建富文本编辑器 AngularJS

javascript - 当有人使用 javascript 或 jquery 粘贴文本时,如何仅禁用/删除输入字段内文本开头的空格?

javascript - 如何通过点击事件删除 jQuery 中的 cookie?

javascript - angular ng-app Controller 注入(inject)

javascript - 使用 Node.JS 作为 REST 服务器和 Web 服务器

javascript - AngularJs ng-show 当列表中的一项在一行中为 true 时显示

javascript - Angular 模块 md-data-table 服务