【发布时间】: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