【问题标题】:Angular Filters - filtering specific objects in an ng-repeatAngular Filters - 在 ng-repeat 中过滤特定对象
【发布时间】:2017-04-17 05:40:55
【问题描述】:

我有一个 ng-repeat,它在数组中输出不同类型的对象(文本、日期、日期时间、货币)。

不使用 ng-repeat,我可以直接将过滤器添加到特定对象:

{{上次修改日期 |日期:'MM-dd-yyyy HH:mm'}}

但如果我使用 ng-repeat,我如何将过滤器应用于数组中的特定对象?


编辑:

抱歉 - 添加更多信息。

JSON:

[
    {
        "information": {
            "createdBy": "John Smith",
            "owner": "Jane Smith",
            "lastModifiedBy": "2017-04-13T17:14:17.000Z",
            "Future_Review_Date_Time__c": "2017-04-10T17:33:00.000Z",
            "CreatedDate": "2017-03-02T02:47:02.000Z",
            "Source": "Phone",
            "cost": "453"
        }
    }
]

如果我对 json 进行了一次 ng-repeat,并且想要专门为 lastModifiedBy(日期)、Future_Review_Date_Time__c(日期时间)、CreatedDate(日期)和成本(货币)添加过滤器 - 我该如何添加它们?

结果:

  • lastModifiedDate: MM-dd-yyyy
  • Future_Review_Date_Time__c: MM-dd-yyyy HH:mm
  • 创建日期:MM-dd-yyyy
  • 成本:$

【问题讨论】:

  • 您的问题不清楚。为什么会有一个包含各种必须迭代的原语的数组,而不是一个具有各种属性的对象? lastModifiedDate 不是一个对象,在这个例子中它是一个原语。如果您将基元分组为对象属性,那么您不需要使用ng-repeat,至少对于单个属性组......
  • @Claies 抱歉 - 刚刚添加了更多信息!
  • 所以这不是一个数组,它是一个对象。这里没有理由使用ng-repeat。使用{{information.createdBy}}{{information.lastModifiedDate : date:'MM-dd-yyyy HH:mm'}}等。为什么你认为你需要ng-repeat
  • 我刚刚重新阅读了我的问题,你是对的,这里没有理由使用 ng-repeat。我通常会按照你的方式输出它。我想,在您在数组上使用 ng-repeat 并且您想将过滤器添加到特定字段的情况下,它是如何工作的?谢谢@Claies
  • 它不起作用,建议您将数组重新格式化为对象。 Angular 是数据驱动的,当您构建数据以匹配您实际尝试完成的内容时效果最佳。

标签: angularjs angularjs-ng-repeat angular-filters


【解决方案1】:

你应该使用如下

<div ng-repeat="item in someArray" >
    {{item.lastModifiedDate | date:'MM-dd-yyyy HH:mm'}}

</div>

【讨论】:

  • 对不起,我没有找到你
  • 我猜他们改变了……我的错
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-27
  • 1970-01-01
相关资源
最近更新 更多